-2

我正在编写 Lua 脚本(单元自动化),现在我需要将蜂窝空间分成 4 个部分,每个部分都有自己的功能,我使用以下代码(对你们中的一些人来说可能看起来很愚蠢):

if  cells:getCell(Coord{x < 25 ,y < 25}) then
cell.P = (cell.past.P + e*i1 + u1*i2)
elseif cells:getCell(Coord{x < 25 ,y > 25})then
cell.P = (cell.past.P + e*i1 + u2*i2)
elseif cells:getCell(Coord{x > 25 ,y < 25})then
cell.P = (cell.past.P + e*i1 + u3*i2)
else
cell.P = (cell.past.P + e*i1 + u4*i2)
end

现在我想问一下重写上述代码的正确方法是什么?有什么功能吗?谢谢!

4

1 回答 1

0

这个怎么样:

do
  local t = {
    { {x < 25, y < 25}, u1 },
    { {x < 25, y > 25}, u2 },
    { {x > 25, y < 25}, u3 },
    { {x > 25, y > 25}, u4 },
  }

  for i = 1, 4 do
    if cells:getCell(Coord(t[i][1])) then
      cell.P = (cell.past.P + e*i1 + t[i][2]*i2)
      break
    end
  end
end

它并没有短多少,但至少代码重复少了很多。

于 2015-03-14T06:13:07.363 回答