我正在寫一個井字遊戲,我想知道我怎麼能進行有效的功能來檢查誰贏了。一個包含X,O或空格的二維數組表示該板。檢查誰贏得井字更高效的C++
char CheckWin(const char board[][NUM_COLS], int& sum) // tic tac toe board - IN
{
char tmp;
int lcv;
tmp = ' ';
if (sum == 9)
{
return 'T';
}
else if (sum != 9)
{
if (((tmp = board[1][1]) != ' ' && board[0][0] == tmp && board[2][2] == tmp) || (board[2][0] == tmp && board[0][2] == tmp))
{
return tmp;
}
for (lcv = 0; lcv < 3; lcv++)
{
if ((tmp = board[lcv][0]) != ' ' && board[lcv][1] == tmp && board[lcv][2] == tmp)
{
return tmp;
}
else if ((tmp = board[lcv][0]) != ' ' && board[lcv][1] == tmp && board[lcv][2] == tmp)
{
return tmp;
}
}
}
return 'N';
}
除了一遍又一遍地做類似這樣的事情,我怎麼能查誰贏了,如果X贏得了返回X,一個O,如果O具有一個,一件T如果它是一個平局,和N如果沒有人有。提前致謝。我一直試圖熟悉C++和編程。
編輯:我剛剛去用簡單的方法,但我有點搞砸了,誰知道怎麼樣?它看起來像,因爲當我把它的主要玩家挑選一個行和列(這是工作的罰款)後,它不輸出任何它不返回任何東西
僅供參考:'const char board [] [3]'不會做你認爲它做的事情。我認爲你的意思是'const char(&board)[3] [3]'? – Mehrdad 2011-03-08 09:34:56
只返回先行者:P – 2011-03-08 09:36:25
當有領帶時返回什麼? – 2011-03-08 09:38:02