繁体   English   中英

井字游戏while和||

[英]tic-tac-toe while and ||

嗨,我17岁,并试图教自己c ++。 对于我的第一个项目,我试图编写一个井字游戏并玩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,它会不断重复同样的问题。 我认为这与while循环有关。 任何帮助表示赞赏。

char player, computer;

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

首先, player没有初始化为任何东西,因此它包含随机垃圾。 您不应该阅读它。 至少将其初始化为某个已知值。

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

您可能是说:

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

您的循环结束条件是错误的,只有在问完一次之后,您才应该检查。

do {
    cout << "do you want to be x or o?";
    cin >> player;
} 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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM