2014-03-30 30 views
0

該功能對代碼玩井字遊戲的值:如何改變在陣列C++

//--------------------FUNCTION-------------------- 

bool playCell(int player, int position, int gameBoard[]) { 

    if (gameBoard[position] == 10 || gameBoard[position] == 11) { 
     return false; 
    } else { 
     return true; 
     if (player == 0){ 
      gameBoard[position] = 10; 
     } else { 
      gameBoard[position] = 11; 
     } // end if 
    } 
} // end function 

playCell需要播放器(0爲「O」,1代表「X」) ,一個位置(1到9)和九個元素gameBoard,如果移動是合法的(即該點尚未被採用)則返回true,否則返回false。如果移動是合法的,則將其位置改變爲該玩家編號(10代表「O」,11代表「X」)。如果玩家或位置輸入無效,則返回false。

我試圖找出如何讓數組的值更改爲10或11取決於玩家,並保存到位置他們就進去玩。

回答

1

return關鍵字重定向該程序返回到主程序。所以返回後的代碼將不會被執行。在的return位置更改:您有一個return語句

//--------------------FUNCTION-------------------- 

bool playCell(int player, int position, int gameBoard[]) 
{ 
    if (gameBoard[position] == 10 || gameBoard[position] == 11) 
    { 
     return false; 
    } 
    else 
    { 
     if (player == 0) 
     { 
      gameBoard[position] = 10; 
     } 
     else 
     { 
      gameBoard[position] = 11; 
     } // end if 
     return true; 
    } 
} // end function 
+0

非常感謝!我知道那是一個非常簡單的問題,但是這會使我永遠想不通。 – user3477165

+0

當陣列輸出時,我需要一個X或一個O出現在用戶輸入的位置。我該怎麼寫呢..我有一個打印表格的功能,需要編寫代碼,以便如果用戶「X」選擇位置3,它將顯示 + ---- + ---- + ---- + | 1 | 2 | X | + ---- + ---- + ---- + | 4 | 5 | 6 | + ---- + ---- + ---- + | 7 | 8 | 9 | + ---- + ---- + ---- + – user3477165

+0

您可以在主程序中執行此操作。你有球員和位置。所以如果這個舉動是合法的話,請將'position'的值改爲'player'。 –

0

這裏您數組賦值之前:

return true; // HERE 
    if (player == 0){ 
     gameBoard[position] = 10; 
    } else { 
     gameBoard[position] = 11; 
    } // end if 

這將導致你的代碼不被執行。從那裏取出這條線並放在正確的地方。