2016-02-08 42 views
1

我正在製作一個快照遊戲,我試圖從陣列中移除兩個圖像,以便在第一張隨機卡和第二張隨機卡匹配時不會再出現。有什麼辦法可以做到這一點?由於刪除兩個陣列中的匹配圖像

var cardNamesArray: [String] = ["sad", "sleepy","angry"] 

var cardNamesArray2: [String] = ["triste", "cansado","enfadado"] 

生成第一陣列隨機卡

firstRandomNumber = Int (arc4random_uniform(3)) 
    let firstCardString:String = self.cardNamesArray[firstRandomNumber] 
    self.FirstCardImageView.image = UIImage(named: firstCardString) 

生成隨機卡第二陣列

SecondRandomNumber = Int (arc4random_uniform(3)) 
    let SecondCardString:String = self.cardNamesArray2[SecondRandomNumber] 
    self.SecondCardImageView.image = UIImage(named: SecondCardString) 

如果它們相匹配的球員記1分

 @IBAction func SnapButtonTapped(sender: UIButton) { 

     if firstRandomNumber == SecondRandomNumber { 

     print("index match") 

     self.playerScore += 1 
     self.playerScoreLabel.text = String(self.playerScore 

    } 

回答

1

你爲什麼不試試從陣列本身移除圖像。一旦隨機數匹配,你就可以做到!

if firstRandomNumber == SecondRandomNumber { 

    print("index match") 
    self.playerScore += 1 
    self.playerScoreLabel.text = String(self.playerScore 
    cardNamesArray.removeAtIndex(firstRandomNumber) 
    cardNamesArray2.removeAtIndex(SecondRandomNumber) 

    if cardNamesArray.count == 0 && cardNamesArray2.count == 0{ 
     print("User Won") 
    }else{ 
     print("Continue Playing") 
    } 
} 

崩潰更新:

與我

firstRandomNumber = Int (arc4random_uniform(UInt32(cardNamesArray.count))) 

SecondRandomNumber = Int(arc4random_uniform(UInt32(cardNamesArray2.count))) 
+0

問題是,當他們匹配時,遊戲崩潰時,玩家再次生成隨機卡。 – Miguel

+1

@Sam查看更新後的答案! –

+0

「不能轉換類型 'INT' 到預期參數類型 'UInt32的' – Miguel

1

更換下面兩行代碼中的您可以在陣列中使用的字典對象。

而不是

var cardNamesArray: [String] = ["sad", "sleepy","angry"] 

您可以使用

Class CardItem{ 

    var name = "" 
    var isDisplayed:Boolean? 

} 

現在

var cardNamesArray: [CardItem] = [CardItem(name:"sad",isDisplayed:false), CardItem(name:"sleepy",isDisplayed:false),CardItem(name:"angry",isDisplayed:false)] 

這裏是你的隨機塊:

SecondRandomNumber = Int (arc4random_uniform(3)) 

變種uniqueItem = self.cardNamesArray2 [SecondRandomNumber]

讓SecondCardString:字符串= uniqueItem.name

self.SecondCardImageView.image = UIImage的(命名爲:SecondCardString)

uniqueItem .isDisplayed = true

所以當你下次生成隨機數時只需檢查項目的isDisplayed屬性。

Regards