用字串陣列作為井字遊戲的遊戲板 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...