31 有效的井字遊戲

2021-10-09 17:05:06 字數 1726 閱讀 4858

用字串陣列作為井字遊戲的遊戲板 board。當且僅當在井字遊戲過程中,玩家有可能將字元放置成遊戲板所顯示的狀態時,才返回 true。

該遊戲板是乙個 3 x 3 陣列,由字元 " ","x" 和 "o" 組成。字元 " " 代表乙個空位。

以下是井字遊戲的規則:

玩家輪流將字元放入空位(" ")中。

第乙個玩家總是放字元 「x」,且第二個玩家總是放字元 「o」。

「x」 和 「o」 只允許放置在空位中,不允許對已放有字元的位置進行填充。

當有 3 個相同(且非空)的字元填充任何行、列或對角線時,遊戲結束。

當所有位置非空時,也算為遊戲結束。

如果遊戲結束,玩家不允許再放置字元。

示例 1:

輸入: board = ["o  ", "   ", "   "]

輸出: false

解釋: 第乙個玩家總是放置「x」。

示例 2:

輸入: board = ["xox", " x ", "   "]

輸出: false

解釋: 玩家應該是輪流放置的。

示例 3:

輸入: board = ["***", "   ", "ooo"]

輸出: false

示例 4:

輸入: board = ["xox", "o o", "xox"]

輸出: true

說明:遊戲板 board 是長度為 3 的字串陣列,其中每個字串 board[i] 的長度為 3。

board[i][j] 是集合 中的乙個字元。

class solution }}

if(x-o != 0 && x-o != 1)return false;

//x win

for(i = 0; i<3; ++i)

if(board[0][i] == 'x' && board[0][i] == board[1][i] && board[0][i] == board[2][i])

}if(board[0][0] == 'x' && board[0][0] == board[1][1] && board[0][0] == board[2][2])x_win = true;

if(board[0][2] == 'x' && board[0][2] == board[1][1] && board[0][2] == board[2][0])x_win = true;

//o win

for(i = 0; i<3; ++i)

if(board[0][i] == 'o' && board[0][i] == board[1][i] && board[0][i] == board[2][i])

}if(board[0][0] == 'o' && board[0][0] == board[1][1] && board[0][0] == board[2][2])o_win = true;

if(board[0][2] == 'o' && board[0][2] == board[1][1] && board[0][2] == board[2][0])o_win = true;

if(x_win && o_win)return false;

if(x_win && !o_win && x == o)return false;

if(!x_win && o_win && x == o+1)return false;

return true;

}};

有效的井字遊戲

問題描述 用字串陣列作為井字遊戲的遊戲板 board。當且僅當在井字遊戲過程中,玩家有可能將字元放置成遊戲板所顯示的狀態時,才返回 true。該遊戲板是乙個 3 x 3 陣列,由字元 x 和 o 組成。字元 代表乙個空位。以下是井字遊戲的規則 玩輪流將字元放入空位 中。第乙個玩家總是放字元 x 且第...

LeetCode有效的井字遊戲python

class solution object defvalidtictactoe self,board type board list str rtype bool first,second xo xnum sum row.count first for row in board onum sum r...

井字棋遊戲

三連棋遊戲 兩人輪流在印有九格方盤上劃 或 o 字,誰先把三個同一記號排成橫線 直線 斜線,即是勝者 程式提供隨機演算法和智慧型演算法兩種ai,隨機演算法使用隨機數隨意選擇棋盤上的位置,智慧型演算法通過對每隔落子位置權重的計算,選取最優的落子點。include include include inc...