Lua 向已保存的表中添加新元素

Lua 向已保存的表中添加新元素,lua,coronasdk,Lua,Coronasdk,因此,我正在研究一个高级密码系统,在这个系统中,你可以输入一个密码,如果密码有效,它将根据你使用的密码奖励你。这个想法很简单,但我有点麻烦 我有一个表,其中包含了如下代码: GameState.PremiumCodesTable = GameState.PremiumCodesTable or {{code = "X45", value = 30}, {code = "MM4", value = 45}, {code = "B47", value = 100}} 基本上,如果游戏是第一次运行,

因此,我正在研究一个高级密码系统,在这个系统中,你可以输入一个密码,如果密码有效,它将根据你使用的密码奖励你。这个想法很简单,但我有点麻烦

我有一个表,其中包含了如下代码:

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[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}

等等。。。但是,这占用了太多的空间,因此我希望它只在一个大表中像上面那样。

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


表格。删除
表格。插入
。想一想
{x45=30}
{x45={type=1,count=2,value=3}
:用简单的
表[code]=something
插入,用
表[code]=nil
删除(或
false
标记使用过的代码),并检查像
如果表[code]那么…
GameState.usedCodes = GameState.usedCodes or {}

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