【问题标题】:How to match the same cards in two arrays如何匹配两个数组中的相同卡片
【发布时间】:2016-02-04 19:27:43
【问题描述】:

我正在创建一个快速游戏,玩家必须匹配两张牌。我创建了两个数组,一个用于英文卡片,一个用于西班牙卡片。包生成随机卡片,但我无法获得相同的卡片匹配,当卡片正确匹配时,玩家赢得 1 分。

 var cardNamesArray: [String] = ["sad", "sleepy","angry"]
 var cardNamesArray2: [String] = ["triste", "cansado","enfadado"]

    //first card generate random number
    let firstRandomNumber = Int (arc4random_uniform(3))
    let firstCardString:String = self.cardNamesArray[firstRandomNumber]
    self.FirstCardImageView.image = UIImage(named: firstCardString)

    //Second Card generate random number
    let SecondRandomNumber = Int (arc4random_uniform(3))
    let SecondCardString:String = self.cardNamesArray2[SecondRandomNumber]
    self.SecondCardImageView.image = UIImage(named: SecondCardString)

我尝试将“sad”与“triste”匹配,但分数保持不变

        if ["sad"] == ["triste"] {

        print("match")

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

    }

【问题讨论】:

  • 由于 Xcode 不是同声传译,比较数字(数组索引)if firstRandomNumber == secondRandomNumber

标签: arrays xcode swift


【解决方案1】:

至少有两种不同的方法,具体取决于您与随机数生成的距离:

如果您仍有可用的随机数,您可以使用:

if firstRandomNumber == secondRandomNumber {
    print("number match")
}

如果您仍然没有可用的随机数,但只有字符串,您可以使用indexOf 在适当的数组中查找字符串:

if cardNamesArray.indexOf(firstCardString) == cardNamesArray2.indexOf(secondCardString) {
    print("index match")
}

【讨论】:

  • 感谢工作。那么当卡片匹配时,它们会被清除,因此它们不会再次出现
猜你喜欢
  • 2022-11-19
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 2023-01-22
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多