我的代碼存在問題,我試圖做一個簡單的戰爭遊戲應用程序,在開始時一切正常,但在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)。 –