我的代码存在问题,我试图做一个简单的战争游戏应用程序,在开始时一切正常,但在10-20点击按钮随机化新卡片后我得到错误:UIImage错误:索引超出范围
fatal error: Index out of range
我知道的变量名是不正确的,但我来自英国没有,所以我很快键入它们和英语单词与波兰gramar:d,karty意味着卡)
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var LeftCardOutlet: UIImageView!
@IBOutlet weak var RightcardOutlet: UIImageView!
@IBOutlet weak var LeftScoreOutlet: UILabel!
@IBOutlet weak var RightscoreOutlet: UILabel!
var karty = ["card2","card3","card4","card5","card6","card7","card8","card9","card10","jack","queen","king"]
var scoreplayer:Int=0
var CPUscore:Int=0
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func DealClicked(_ sender: UIButton) {
var random1:Int = 0
var random2:Int = 0
random1 = Int(arc4random_uniform(UInt32(12)))
random2 = Int(arc4random_uniform(UInt32(12)))
var im1=UIImage(named:"\(karty[random1+1])")
var im2=UIImage(named: "\(karty[random2+1])")
LeftCardOutlet.image=im1
RightcardOutlet.image=im2
if random1>random2 {
scoreplayer+=1
LeftScoreOutlet.text=String(scoreplayer)
}
if random1<random2 {
CPUscore+=1
RightscoreOutlet.text=String(CPUscore)
}
}
}
我在这一行中有错误:
var im2=UIImage (named: "\ (karty[random2+1])")
,我在斯威夫特是新的,它的我的第三,他们所以请理解:)
*不要*加1到随机数,数组索引从*零开始* –
即时通讯如此愚蠢.....我必须从“karty [random2 + 1”中删除“+1”:D –
另请参见[从数组中挑选一个随机元素](http://stackoverflow.com/questions/24003191/pick-a-random-element-from-an-array)。 –