Pregunta

Hola, tengo 17 años y estoy tratando de aprender C ++.Para uno de mis primeros proyectos, estoy tratando de escribir un juego de tic-tac-toe y jugar contra una IA.Así que el código con el que tengo problemas es este

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;
};

Recibo el mensaje "¿quieres ser x o o?", pero luego ingreso x o o y sigue repitiéndose lo mismo. pregunta.Creo que tiene que ver con el bucle while.Se agradece cualquier ayuda.

¿Fue útil?

Solución

La condición de finalización de su ciclo es incorrecta y no debe verificar hasta que haya preguntado una vez.

do {
    cout << "do you want to be x or o?";
    cin >> player;
} while (player != 'x' && player != 'o');

Otros consejos

char player, computer;

while (player != 'x' || player != 'o' ) {

En primer lugar, player no se inicializa con nada, por lo que contiene basura aleatoria.No deberías leerlo.Al menos inicialícelo con algún valor conocido.

En segundo lugar, su condición siempre será cierta.Suponga que player es 'x'.Eso satisface la condición player != 'o'.

Probablemente te refieres a:

while (player != 'x' && player != 'o') {

Tu problema es el condicional.Lo que creo que quiere decir es while (player != 'x' && player != 'o'), es decir, cuando player no es 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;
    };
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top