我正在研究一个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
现在我想问一下重写上述代码的正确方法是什么?任何功能?谢谢!
答案 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
它不会短得多,但至少代码重复次数要少得多。