将新元素添加到已保存的表中

时间:2016-07-31 13:47:10

标签: lua corona

所以,我正在开发一个高级代码系统,您可以在其中输入密码,如果代码有效,它将根据您使用的代码奖励您。但是,非常简单的想法,我遇到了一些麻烦。

我有一个包含所有代码的表格,如下所示:

GameState.PremiumCodesTable = GameState.PremiumCodesTable or {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}}

基本上,如果游戏第一次运行,GameState.PremiumCodesTable将为nil,它将在GameState表中创建新元素,即此表:{{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}}

现在,当用户使用有效代码时,会从表中删除。最终,用户将找到所有代码,使用它们,GameState.PremiumCodesTable表将为空。

现在,我想更新游戏并引入一些新代码来查找。但是,由于GameState.PremiumCodesTable已空并且已保存,因此它始终为空。

如何在以后添加更多代码?

我有一个解决方案,但我不喜欢它,所以我在这里问。我的解决方案是按代码添加代码:

GameState.PremiumCodesTable[1] = GameState.PremiumCodesTable[1] or {code = "X45", value = 30}
GameState.PremiumCodesTable[2] = GameState.PremiumCodesTable[2] or {code = "MM4", value = 45}
GameState.PremiumCodesTable[3] = GameState.PremiumCodesTable[3] or {code = "B47", value = 100}

等等......但是,这需要太多的空间,所以我希望只有一个大表,就像上面那个一样。

1 个答案:

答案 0 :(得分:1)

使用保存文件存储已使用的代码字符串数组,然后初始化PremiumCodesTable以包含所有代码的完整数据。这样,保存文件保留了最少量的信息,您可以根据需要自由地处理保存文件。 (您可能需要将代码数据存储在非数组表中,以便于访问。)

GameState.usedCodes = GameState.usedCodes or {}

local PremiumCodesTable = {
  {code = "X45", value = 30},
  {code = "MM4", value = 45},
  {code = "B47", value = 100}
}