我正在努力寻找最佳解决方案,因为我没有参考框架,而且我还在学习。 我的游戏中有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
}