簡體   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