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.

Était-ce utile?

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;
    };
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top