如果所有值都为假,请检查另一个词典

时间:2017-05-25 16:29:48

标签: swift dictionary swift3

我正在努力寻找最佳解决方案,因为我没有参考框架,而且我还在学习。 我的游戏中有3个阶段存储在字典中,如下所示:

var stages = ["Stage_01": ["Level_01": true, "Level_02": false],
              "Stage_02": ["Level_03": true, "Level_04": false],
              "Stage_03": ["Level_05": true, "Level_06": false]]

我创建了一个循环遍历它们的函数,看它们是设置为true还是false。如果他们是真的那么他们只是返回水平那就是那个。如果它们是假的,它必须进入下一个级别。 如果所有级别都是假的,那么我希望它加载下一个阶段,这是我的知识缺乏的地方,在外行术语中我基本上需要它只是回到函数的顶部,以便迭代所有阶段,这清楚不能使用我目前的逻辑。 任何方向都会受到赞赏。

func loadNextLevel() -> String {
  var falseCounter = 0
  var stageNumber = 1
  var loadLevel = ""

  if var stage = stages["Stage_0\(stageNumber)"] as? Dictionary<String, Bool> {
    for (level, value) in stage {
      if value == true {
             // Set it to false and update the value then return the level
             stage[level] = false
             stages.updateValue(stage, forKey: "Stage_0\(stageNumber)")
             return level
      } else {
             falseCounter += 1
      }

      if falseCounter == 5 {
                //All levels are done, load next stage
                if self.stageNumber < 4 {
                    self.stageNumber += 1
                    loadNextLevel()
                } else {
                    // reset all the levels back to true and start again
                }

    return loadLevel
}

0 个答案:

没有答案