在Lua中执行部分功能的方法。

我目前正在玩《我的世界》上的 FTB 并进入了一种名为 Computercraft 的模组,它使用 Lua 作为其编程语言。我已经为清理具有 3 个方向和任何大小的房间编写了一个基本的脚本。方向分别是右边、左边和中央。中心是为了如果人们想要门位于房间中心。但我遇到了问题,我想执行一个功能和一些其他函数一起的代码。

这是我想在另一个函数中执行一次的函数

function hwd()
    for m = 1,w*0.5 do
       turtle.dig()
       echest()
       turtle.forward()
    end
end

这是主函数

function cntr()
    if d == "c" then
            for p = 1,w do
                length()
                turtle.turnRight()
                turtle.dig()
                echest()
                turtle.forward()
                turtle.turnLeft()
            end
    end
end

我需要在第一个循环中执行的部分将如下所示:

turtle.turnLeft()
hwd()
turtle.turnRight()

在 "for p = 1,w do" 之后,在 "length()" 之前。

我已经使脚本工作,但没有中心部分,但需要添加此部分。任何帮助将不胜感激。

要查看工作脚本,请访问:http://pastebin.com/Uf5Li1Cy

要查看添加了中心部分的脚本,请访问:http://pastebin.com/AqZHQrFb

点赞
用户501459
用户501459

这个循环是否总是至少执行一次?那么就将那段代码放在循环之前。

  -- 做这个特殊的事情
  for p = 1,w do

如果不是,你可以将它放在循环之间,并用一个布尔值进行保护:

  local didTheSpecialThing = false
  for p = 1,w do
     if not didTheSpecialThing then
        -- 做这个特殊的事情
        didTheSpecialThing = true
    end
    ...

或者你可以将它放在循环之前,并检查是否需要执行:

  if w > 0 then
    -- 做这个特殊的事情
  end
  for p = 1,w do
2013-10-31 22:37:54