stty size | lua -e 'math.randomseed(os.time()); r, p = io.read, io.write; H = r"*n" or 24; W = r"*n" or 80; w = 20 + W; a = {}; for k = 1, w * (20 + H) do a[k] = math.random() < 1/3; end; p"\27[H\27[J"; for S = 1, 31 do for P = 1, 2 do b = {}; for c = 1, #a do s = 0; for K, h in ipairs{-w-1, -w, -w+1, -1, 1, w-1, w, w+1} do if a[(c + h) % #a] then s = s + 1; end; end; b[c] = s < 3; end; a = b; end; p"\27[H"; for y = 10, H + 8 do for x = 10, W + 8 do if a[w * y + x] then p"#" else p" " end; end; p"\n"; end; end;'