Lua可以判断一个细胞的坐标是什么功能?

时间:2015-03-05 15:58:09

标签: lua cellular-automata

我正在研究一个Lua脚本(单元自动化),现在我需要将cellularspace划分为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

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

1 个答案:

答案 0 :(得分: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

它不会短得多,但至少代码重复次数要少得多。