嗨,我17岁,试图自学C ++。对于我的第一个项目之一,我试图编写一款TIC-TAC-TOE游戏并与AI进行玩。所以代码我遇到麻烦了

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

我收到消息“您想成为X或O?”,但是然后输入X或O,它不断重复相同的问题。我认为这与时循环有关。任何帮助都将受到赞赏。

有帮助吗?

解决方案

您的循环终端条件是错误的,直到您询问一次之前,您不应该检查。

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

其他提示

char player, computer;

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

首先, player 没有初始化任何东西,因此包含随机垃圾。您不应该从中读书。至少将其初始化为一些已知值。

其次,您的病情永远是正确的。假设 player'x'. 。满足条件 player != 'o'.

你可能的意思是:

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

您的问题是条件。我认为你的意思是 while (player != 'x' && player != 'o'), ,即何时 player 既不是X也不是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;
    };
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top