tic-tac-toe while和||

时间:2012-02-21 05:04:36

标签: c++ tic-tac-toe

你好17,并试图自学c ++。对于我的第一个项目之一,我正在尝试编写一个井字游戏和一个人工智能游戏。所以我遇到麻烦的代码就是这个

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并且它会不断重复 题。我认为它与while循环有关。任何帮助表示赞赏。

5 个答案:

答案 0 :(得分:7)

char player, computer;

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

首先,player未初始化为任何内容,因此它包含随机垃圾。你不应该读它。至少将其初始化为某个已知值。

其次,你的情况永远是真实的。假设player'x'。这满足条件player != 'o'

你可能意味着:

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

答案 1 :(得分:6)

你的循环结束条件错误,在你问过一次之前你不应该检查。

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

答案 2 :(得分:1)

你的问题是有条件的。我认为你的意思是while (player != 'x' && player != 'o'),即player既不是x也不是o。

答案 3 :(得分:0)

while ( (player == 'x' || player == 'o') == false )

答案 4 :(得分:0)

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