-1

我是一个使用 Lua 的名为 TableTop Simulator 的游戏的 hobbest modder。

我有一个字符串,其中包含代表一副纸牌的多行数据列表。

Example:
2x Blackwood File Clerk
1x Patrol Wagon
3x Short Fuse
1x Adult Deep One
1x Deep One Assault
1x Shadowed Reef
3x Agoraphobia

我需要做的是将该字符串转换为短语格式,然后我可以使用它来取出卡片和数量来构建套牌。

我正在考虑尝试制作一些看起来像这样的桌子..

deckList{}
   deckList[1].name = 'Blackwood File Clerk'
   deckList[1].quantity= 2
   deckList[2].name = 'Patrol Wagon'
   deckList[2].quantity= 1

等等等等……

然后我可以使用名称字符串来查找匹配的卡,然后使用数量值来获取它的那么多副本。

我遇到的问题是我不知道该怎么做......我需要以某种方式分隔每一行,然后取出价值和东西。我认为因为它总是 1,2,3 而不是切割和复杂,我可以将一条线变成“1x”,因为删除它会使“名称”完美地用于搜索。我仍然需要阅读每一行和内容。

4

1 回答 1

2
local str = [[
2x Blackwood File Clerk
1x Patrol Wagon
3x Short Fuse
1x Adult Deep One
1x Deep One Assault
1x Shadowed Reef
3x Agoraphobia]]

local deckList = {}
for line in str:gmatch"[^\r\n]+" do
   local qty, name = line:match"^(%d+)x%s+(.-)%s*$"
   table.insert(deckList, {name = name, quantity = tonumber(qty)})
end
于 2017-06-19T06:50:07.253 回答