我试图制作一个记忆游戏,将图像应用到12个不同的按钮,并检查2个按钮显示时图像是否相同。检查相同的值swift
------------------- FINISHED FORM?----------------------- -
这是Duncan C的建议,
func setImages() {
var values = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6]
values.shuffleInPlace()
button1.tag = values[0]
button2.tag = values[1]
button3.tag = values[2]
button4.tag = values[3]
button5.tag = values[4]
button6.tag = values[5]
button7.tag = values[6]
button8.tag = values[7]
button9.tag = values[8]
button10.tag = values[9]
button11.tag = values[10]
button12.tag = values[11]
}
@IBAction func buttonPressed(sender: UIButton) {
var images : [UIImage] = [
UIImage(named:"ye1")!,
UIImage(named:"ye2")!,
UIImage(named:"ye3")!,
UIImage(named:"ye4")!,
UIImage(named:"ye5")!,
UIImage(named:"ye6")!,
UIImage(named:"ye7")!,
UIImage(named:"ye8")!,
UIImage(named:"ye9")!,
UIImage(named:"ye10")!,
UIImage(named:"ye11")!,
UIImage(named:"ye12")!
]
images.shuffleInPlace()
let integrera = (sender.tag - 1)
let imageString:String = String(format: "ye%i", integrera)
if !firstButtonAlreadyPresssed {
firstButtonValue = sender.tag //remember the button for later
firstButtonAlreadyPresssed = true
sender.setImage(UIImage(named: imageString), forState: .Normal)
}
else
//We already have a first button pressed.
if sender.tag == firstButtonValue {
sender.setImage(UIImage(named: imageString), forState: .Normal)
}
else {
let secondimage = (sender.tag)
let secondString : String = String(format: "ye%i", secondimage)
sender.setImage(UIImage(named: secondString), forState: .Normal)
}
firstButtonAlreadyPresssed = false //reset the "isFirstButton" flag for the next time.
}
}
创建图像的阵列。我们称之为'图像'。在你的buttonPressed方法中,将sender的图像设置为'images [sender.tag -1]'。对于第一个按钮,您可能想要保留图像。按第二个按钮,您想要显示第二个图像,例如说“您赢了”或“您输了”,暂停几秒钟,然后将第一个按钮和第二个按钮恢复为其通用图像。 –
@DuncanC对于所有12个按钮,我是否应该随机排列数组,并且第二个按钮图像是否应该是'images [sender.tag -2]'等等?谢谢你的耐心。 –
@DuncanC看看更新后的代码和评论界的问题,我想我们会解决这个问题! –