我是编程新手,我想学习Swift 3.0。
我一直在尝试编写自己的TicTacToe-Game,但是以某种方式,当我检查获胜者时,布尔回报并不能按我想要的方式工作...
CheckWin()函数如下所示:
func CheckWin() -> Bool {
if button1.titleLabel?.text == button2.titleLabel?.text && button2.titleLabel?.text == button3.titleLabel?.text && button1.titleLabel?.text != nil {
return true
} else {
return false
}
//and so on...
我的问题是,当我单击按钮时,按钮会用“ X”或“ O”填充按钮,然后我通过if语句调用CheckWin()函数。
但是它将Labeltext设置为“ Won!”在下一次之后,我单击一个按钮。而不是立即检查它并将Labeltext设置为“ Won!”。
@IBAction func buttonClick(_ sender: UIButton) {
if sender.titleLabel?.text == nil {
if player % 2 == 0 {
sender.setTitle(playerx, for: UIControlState.normal)
player += 1 //Adds 1 to the variable player
turn += 1 //Adds 1 to the variable turn (to check later for a draw)
} else {
sender.setTitle(playero, for: UIControlState.normal)
player += 1
turn += 1
}
}
if CheckWin() {
label.text = "Won!"
}
}
我感谢任何帮助/提示!提前致谢!
(顺便说一句,我知道为每个Button创建一个插座不是一个好主意,但是起初我只是想让这个东西开始工作,然后再开始改进):)
最佳答案
你有:
if player%2==0
{
sender.setTitle(playerx, for: UIControlState.normal}
player += 1 //Adds 1 to the variable player
turn += 1 //Adds 1 to the variable turn (to check later for a draw)
}
请参阅第一行末尾的
}
,而不是)
是因为该错误还是您只是为问题而错误地复制了代码?另外,请确保按钮类型为“自定义”,而不是“系统”。将其更改为“自定义”将使默认的“文本颜色”变为白色,因此将其更改为黑色或其他颜色。