24 lines
576 B
Text
24 lines
576 B
Text
require "table2"
|
|
|
|
local trans <const> = "___#_##_"
|
|
|
|
local v = |cell, i| -> cell[i] != "_" ? 1 : 0
|
|
|
|
local function evolve(cell, backup)
|
|
local len = #cell - 2
|
|
local diff = 0
|
|
for i = 2, len do
|
|
backup[i] = trans[v(cell, i - 1) * 4 + v(cell, i) * 2 + v(cell, i + 1) + 1]
|
|
diff += backup[i] != cell[i] ? 1 : 0
|
|
end
|
|
cell:clear()
|
|
cell:join(backup)
|
|
return diff != 0
|
|
end
|
|
|
|
local c = "_###_##_#_#_#_#__#__":split("")
|
|
local b = "____________________":split("")
|
|
while true do
|
|
print(c:slice(2):concat(""))
|
|
if !evolve(c,b) then break end
|
|
end
|