URGENTE - Código_AJUDA

4 respostas
cprogramação
S

Oi,eu tou fazendo um placar de tenis onde são divididas em pontos, games e sets.
Tendo em conta as regras do game eu não tou conseguido que assim que um jogador ganhe a partida assinala quem ganhou,perdeu ou empate ,e depois que vá para outro set.

Eu neste momento só tou conseguindo atribui pontos aos 2 jogadores, só que tb nao dá retira pontos dos jogadores não.

Alguem me pode ajuda ai,por favor
Obrigada

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int pontosj1, pontosj2,ponto1,ponto2;
int game1, game2,gamesj1,gamesj2;
int setj1, setj2;
int ponto,ponto2,ps1,ps2;
int games2j1,games3j1,games2j2,games3j2;

void painel(){
	    printf("\n\n---------------------BEM VINDO ---------------------");//Criação do menu
}

void exibirplacar(){//função para exibir o placar durante a partida
	printf("\n\nPLACAR\n\n");
	printf("|Jogadores | Set 1| Set 2 | Set 3 | Pontos \n");
	printf("| jogador 1| %d    | %d     | %d     | %d  \n",gamesj1,games2j1,games3j1,ponto1);
	printf("| jogador 2| %d    | %d     | %d     | %d \n",gamesj2,games2j2,games3j2,ponto2);
}

void pontos(){//Função para contar os pontos da partida
	for(;;){
	printf("\n\nInforme para qual tenista voce quer dar o ponto: \n\n(1)- Jogador 1 \n(2)- Jogador 2\n\n");
	scanf("%d",&ponto);

	if(ponto==1){
		pontosj1++;
		break;
	}
	else if(ponto==2){
		pontosj2++;
		break;
	}
  }
}

void marcaponto(){//função para marcar os pontos no placar do jogo

	if(pontosj1==1){//pontos jogador 1
		ponto1=15;
	}
	else if(pontosj1==2){
		ponto1=30;
	}
	else if(pontosj1==3){
		ponto1=40;
	}

	else if(pontosj1==4){
      ponto1=0;
		ponto2=0;
		pontosj1=0;
		pontosj2=0;
		game1++;
	}

	if(pontosj2==1){//pontos jogador 2
		ponto2=15;
	}
	else if(pontosj2==2){
		ponto2=30;
	}
	else if(pontosj2==3){
		ponto2=40;
	}
	else if(pontosj2==4){
		ponto2=0;
		ponto1=0;
		pontosj2=0;
		pontosj1=0;
		game2++;
	}
}

void marcagset1(){//função para marcar os games do primeiro set
     if(game1==1){//games jogador 1
     	gamesj1=1;
	 }
	 else if(game1==2){
	 	gamesj1=2;
	 }
	 else if(game1==3){
	 	gamesj1=3;
	 }
	 else if(game1==4){
	 	gamesj1=4;
	 }
	 else if(game1==5){
       gamesj1=5;
	 }
	 else if(game1==6){
	 	gamesj1=6;
	 }
	 if(game2==1){//games jogador 2
     	gamesj2=1;
	 }
	 else if(game2==2){
	 	gamesj2=2;
	 }
	 else if(game2==3){
	 	gamesj2=3;
	 }
	 else if(game2==4){
	 	gamesj2=4;
	 }
	 else if(game2==5){
	 	gamesj2=5;
	 }
	 else if(game2==6){
	 	gamesj2=6;
	 }
	 if(gamesj1==6||gamesj2==6){//condição para interromper a contagem de pontos do jogador2
	 	game2=0;
	 	game1=0;
	 }
	 if(gamesj2==6||gamesj1==6){//condição para interromper a contagem de pontos do jogador 1
	 	game1=0;
	 	game2=0;
	 }
}

main (){
	painel();
	for(;;){
	 exibirplacar();
	 pontos();
	 marcaponto();
	 marcagset1();
  }
	return 0;
}

4 Respostas

I
int ganhador;

    void gameWin(int jogador){
    	printf("\n\nJogador %d ganhou\n\n", jogador);
    	system`Texto pré-formatado`("pause");
    	ganhador = 0;
    }

else if(pontosj2==4){
		ponto2=0;
		ponto1=0;
		pontosj2=0;
		pontosj1=0;
		game2++;
		ganhador = 2;
	}
	if(ganhador != 0 )
		gameWin(ganhador);
S

Obrigada me ajudou muito mais,só ainda nao consegui resolver a questão dos sets nem retira pontos nao

I

Entendi.
Posso tentar ajudar.
Poderia explicar o problema de maneira mais clara, porque não consegui entender direito. :sweat_smile:

S

Ahhh tá, então eu tou querendo que o jogo rode as 3 partidas (Sets) e depois acaba dizendo o vencedor e se quer sair ou jogar novamente,nao que fique só no Set 1 e acaba.

E depois a questão dos pontos e que quando atribuo pontos aos jogadores eu depois ja nao consigo alterar imagine que eu vou atribui pontos ao jogador 1 sendo que os pontos eram para o jogador 2 nao dá para altera.

Criado 5 de outubro de 2019
Ultima resposta 10 de out. de 2019
Respostas 4
Participantes 2