有没有办法连续遍历lua表?

问题描述 投票:0回答:1

我正在开发基于回合的游戏,并且具有以下结构的玩家表

players = {
    ["p1"] = Player(),
    ["p2"] = Player(),
    ...
    ["pn"] = Player()
}

我想做的是遍历表中的每个玩家(在每个玩家玩完回合之后,回到第一个索引(在这种情况下为“ p1”)]

因此我在运行代码时应执行以下操作

function shift()
    -- do stuff to shift the player's turn
    print(player.name)
end

shift() -- "p1"
shift() -- "p2"
...
shift() -- "pn"
shift() -- "p1"
-- and so on

lua next
1个回答
0
投票
local index
function shift()
   if not index then index = next(players) end
   print(players[index].name)
   index = next(players, next)
end

如果我正确理解了这个问题,那应该做你想做的事;)

© www.soinside.com 2019 - 2024. All rights reserved.