有效的井字遊戲

2021-10-08 06:59:48 字數 1994 閱讀 4926

問題描述 :

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