我对编程很陌生,我想学习Swift 3.0。
我一直在努力编写我自己的TicTacToe-Game,但不知何故,当我检查胜利者时,bool返回不会按我想要的方式工作......
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...
我的问题是,当我点击一个Button时,它用“X”或“O”填充Button,之后我通过if语句调用CheckWin()函数 但它将Labeltext设置为“Won!”在NEXT时间之后,我点击一个按钮。而不是立即检查它并将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创建一个插座并不是一个好主意,但起初我只想在开始改进之前让这个东西工作):))
答案 0 :(得分:0)
你有:
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)
}
请参阅第一行末尾的}
,而不是)
这是错误还是只是错误地为您的问题复制了代码?
此外,请确保按钮类型为“自定义”,而不是“系统”。将其更改为自定义将使默认文本颜色变为白色,因此将其更改为黑色或其他任何内容。