-2
私は現在、Tic Tac Toeゲームのスウィフトガイのチュートリアル(https://www.youtube.com/watch?v=rD3uqeLdal8)に従っていますが、実際にはコードの問題に固執しています。Tic Tac Toe Tie Swift 3
ドロー(ネクタイ)があるかどうかを判断する間に、すべてのスペースがボード上で取られて勝利したとき、ゲームは実際にはクロスまたはノーを獲得したはずです。それは勝利を登録しません。もし誰かがこれで私を助けることができたら、それは感謝します。
var activePlayer = 1 //Cross
var gameState = [0, 0, 0, 0, 0, 0, 0, 0, 0]
let winningCombinations = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6]]
var gameIsActive = true
@IBOutlet weak var label: UILabel!
@IBAction func action(_ sender: AnyObject)
{
if (gameState[sender.tag-1] == 0 && gameIsActive == true)
{
gameState[sender.tag-1] = activePlayer
if (activePlayer == 1)
{
sender.setImage(UIImage(named: "Cross.png"), for: UIControlState())
activePlayer = 2
}
else
{
sender.setImage(UIImage(named: "Nought.png"), for: UIControlState())
activePlayer = 1
}
}
for combination in winningCombinations
{
if gameState[combination[0]] != 0 && gameState[combination[0]] == gameState[combination[1]] && gameState[combination[1]] == gameState[combination[2]]
{
gameIsActive = false
if gameState[combination[0]] == 1
{
label.text = "CROSS HAS WON!"
}
else
{
label.text = "NOUGHT HAS WON!"
}
playAgainButton.isHidden = false
label.isHidden = false
}
}
gameIsActive = false
for i in gameState
{
if i == 0
{
gameIsActive = true
break
}
}
if gameIsActive == false
{
label.text = "IT WAS A DRAW"
label.isHidden = false
playAgainButton.isHidden = false
}
}
'gameIsActive = false'をgameState' –
で@CleverError残念ながら、まだ時にクロス勝ち、それは引き分けだ言って私のための'の前に削除します。 – danya
私は愚かな質問のための私の夜だと思います。私はあなたのwinningCombinations配列がゼロベースであることを見ています(予想通り)。しかし、私はあなたがタグプロパティから1を減らしているのも見ています。それは問題ですか? – dfd