-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 に答える