Olá Pessoal, tudo bom?
Tenho que criar um placar eletrônico de uma partida de tênis. Eu sei como funciona a contagem de pontos durante o jogo e as condições de vitória. O problema é que não estou conseguindo converter os pontos para games.
Por exemplo, quando um dos jogadores marcar 4 pontos ou seja 15, 30, 40, game, eu quero que marque 1 game no placar. Eu criei um contador de pontos para cada jogador, como pode ser visto no código, mas não consigo criar um contador para os games.
Os pontos são marcados corretamente no placar, o problema é a marcação dos games. Outro problema que tenho, é que quando um dos jogadores fechar um set, por exemplo o jogador 1 vence por 6 a 0, a contagem dos games do primeiro set ainda fica funcionando.
Estou super perdido, ficarei muito grato se alguém puder me dar uma luz por gentileza e esclarecer minha dúvida.
Um cordial abraço!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int pontosj1, pontosj2,ponto1,ponto2;
int game1, game2,gamesj1,gamesj2;
int setj1, setj2;
int ponto;
int games2j1,games3j1,games2j2,games3j2;
void painel(){
printf("\n\n---------------------BEM VINDO A FINAL DO TORNEIO DE ROLAND GARROS 2018---------------------");//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;
}
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;
}
}
main(){
painel();
for(;;){
exibirplacar();
pontos();
marcaponto();
}
return 0;
}
adicionado 23 minutos depois
Consegui criar o contador dos games pessoal, criei essa função para marcar os games do primeiro set
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int pontosj1, pontosj2,ponto1,ponto2;
int game1, game2,gamesj1,gamesj2;
int setj1, setj2;
int ponto;
int games2j1,games3j1,games2j2,games3j2;
void painel(){
printf("\n\n---------------------BEM VINDO A FINAL DO TORNEIO DE ROLAND GARROS 2018---------------------");//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;
}
}
main(){
painel();
for(;;){
exibirplacar();
pontos();
marcaponto();
marcagset1();
}
return 0;
}
adicionado 29 minutos depois
Só que ainda não consegui fazer de parar a contagem dos games do primeiro set, quando um jogador marcar 6 games primeiro que o outro, como eu já tinha citado anteriormente.
Como eu poderia resolver isso pessoal?