Eu estou fazendo um jogo da velha em C, mas estou tendo um problema.
Guardo os nomes dos jogadores em 2 arrays de char, para mostrar a mensagem “É a sua vez, %s!”.
O problema é que após passar pela linha 56, na próxima vez que imprimo o nome desse jogador, sai em branco. Ex.: “É a sua vez, !”.
Se fizer um depuração (mesmo que com a mente) nota-se que é impossível a função printf falhar na impressão.
puwomavipi.cpp
int proximo = 1;
int counter = 0;
while (1) {
char proximonome[20];
imprimirtabela(tabela);
if (proximo) {
strcpy(proximonome, player1);
} else {
strcpy(proximonome, player2);
}
printf("É sua vez, %s!\n", proximonome);
char posicaoescolhida[2];
pegarposicaoescolhida(posicaoescolhida);
printf("\nEscolha: %s\n", posicaoescolhida);
counter--;
if (counter == -20) {
break;
}
}
a variável proximo para toda vida da iteração é igual a 1, então vai está sempre copiando e imprimindo a mesma condição. Qualquer coisa diferente disso é um absurdo. Pois só resta a alternativa de que o erro é das funções na biblioteca . Eu não consigo pensar em mais nada.
Para essa condição de controle eu proponho a seguinte substituição de código.