下面是一些代碼,用於檢查某人是否在井字棋板上獲勝。 (板[0] - 板[8]從頂部表示井字板至底部,左到右):查看用戶是否贏得井字棋比賽的邏輯不起作用
func checkWin(board: [Int]) -> Bool{
if board[0] != 0 {
if board[0] == board[1] && board[1] == board[2] {
return true
} else if board[0] == board[3] && board[3] == board[6] {
return true
}
} else if board[4] != 0 {
if board[1] == board[4] && board[4] == board[7] {
return true
} else if board[3] == board[4] && board[4] == board[5] {
return true
} else if board[2] == board[4] && board[4] == board[6] {
return true
} else if board[0] == board[4] && board[4] == board[8] { //
return true
}
} else if board[8] != 0 {
if board[2] == board[5] && board[5] == board[8] { //
return true
} else if board[6] == board[7] && board[7] == board[8] { //
return true
}
}
return false
}
然而,三行//在端部將不即使返回true條件得到滿足。我已經注意到他們都是分享董事會[8],但是我知道這不是故事板的問題,就好像我硬編碼贏得滿足其中一個錯誤條件的勝利仍然不起作用。任何人都可以看到發生了什麼問題?
三個外部'if'語句有什麼意義?每個「板子」條目都有哪些值? – rmaddy
我猜'0'是空白的,'1'是玩家1,'2'是玩家2.所以外面的ifs在那裏是爲了防止識別連續的3個空白空間作爲勝利。 – vacawama
如果你完成一個遊戲並打印板陣列,它是否反映了遊戲結束狀態? – Magnas