問題描述 :
用字串陣列作為井字遊戲的遊戲板 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] 是集合 中的乙個字元。
輸入說明 :
輸入三行,每行三個字元,每個字元都屬於集合
輸出說明 :
輸出結果:true或false
輸入範例 :
xoxo o
xox輸出範例 :
true
#include
#include
using
namespace std;
bool
win(vector
&board,
char a)
if(board[i][0
]==a&&board[i][1
]==a&&board[i][2
]==a)}if
(board[0]
[0]==a&&board[1]
[1]==a&&board[2]
[2]==a)
if(board[0]
[2]==a&&board[1]
[1]==a&&board[2]
[0]==a)
return
false;}
bool
validtictactoe
(vector
&board)
if(board[i]
[j]==
'o')}}
if(ocount!=xcount&&ocount!=xcount-1)
return
false;if
(win
(board,
'x')
&&ocount!= xcount-1)
return
false;if
(win
(board,
'o')
&& ocount!=xcount)
return
false
;return
true;}
intmain()
bool res=
validtictactoe
(board)
; cout<<
(res?
"true"
:"false"
)
}
31 有效的井字遊戲
用字串陣列作為井字遊戲的遊戲板 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...