以下は、誰かがチック・タック・トゥ・ボードで勝ったかどうかを確認するコードです。 (ボード[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を返しません条件が満たされる。私は彼らがすべてボードを共有していることに気がつきましたが、これはストーリーボードの問題ではないことが分かりました。誰が何がうまくいかないのを見ることができますか?
3つの外側の 'if'ステートメントのポイントは何ですか? 'board'エントリにはどのような値がありますか? – rmaddy
「0」は空きスペース、1はプレイヤー1、2はプレイヤー2であると推測しています。したがって、3つの空白を3つの空白を勝利として認識するのを防ぐために外側のifがあります。 – vacawama
ゲームを終えてボードアレイを印刷すると、ゲームの終了状態が反映されますか? – Magnas