Question
Salut im 17 et essayer de m'apprendre C ++. Pour l'un de mes premiers projets, j'essaie d'écrire un jeu tic-tac-toe et de jouer par rapport à une IA. Donc le code avec qui j'ai des problèmes est ceci
main() {
char player, computer;
while (player != 'x' || player != 'o' )
{
cout << "do you want to be x or o?";
cin >> player;
};
if (player == 'x' ) computer == 'o';
else computer == 'x';
cout << "player is: " << player << endl << "computer is: " << computer ;
cout << computer;
};
Je reçois le message "Voulez-vous être x ou o?", Mais ensuite je saisis x ou o et il continue de répéter la même question. Je pense que cela a à voir avec la boucle while. Toute aide est appréciée.
La solution
Votre condition de fin de boucle est erronée et vous ne devriez pas vérifier jusqu'à ce que vous ayez demandé une fois.
do {
cout << "do you want to be x or o?";
cin >> player;
} while (player != 'x' && player != 'o');
Autres conseils
char player, computer;
while (player != 'x' || player != 'o' ) {
Tout d'abord, player
n'est pas initialisé à quoi que ce soit, il contient donc des ordures aléatoires. Vous ne devriez pas en lire. Au moins, initialisez-le à une valeur connue.
Deuxièmement, votre condition sera toujours vraie. Supposer que player
est 'x'
. Qui satisfait la condition player != 'o'
.
Vous voulez probablement dire:
while (player != 'x' && player != 'o') {
Votre problème est le conditionnel. Ce que je pense que tu veux dire, c'est while (player != 'x' && player != 'o')
, c'est-à-dire quand player
n'est ni x ni o.
while ( (player == 'x' || player == 'o') == false )
char player = ' '; // always init variables
while (player != 'x' && player != 'o' ) //exit if false, when player == x or == o
{
cout << "do you want to be x or o?";
cin >> player;
};