script property
Implementation
List<List<String>> script = [
[
":ans 0",
":gworld (@M + 2) (@N + 2) # オフスクリーンを設定する",
"#",
"# 初期形状を盤に配置する",
"#",
"@m = int ((@M + 2) / 2 - @@0 0 / 2) # 初期形状が盤の中央にくるようにオフセット計算する",
"@n = int ((@N + 2) / 2 - @@0 1 / 2) # 初期形状が盤の中央にくるようにオフセット計算する",
"for @j = 0; @j < @@0 1; @j++",
" for @i = 0; @i < @@0 0; @i++",
" @@a (@n + @j) (@m + @i) = @@0 (2 + @j * @@0 0 + @i)",
" next",
"next",
"@g = 1 # 世代"
],
[
"#",
"# メイン",
"#",
":gput @@a # 配列の内容をオフスクリーンに描画",
// ":sprint @@s [\"Generation ] @g",
// ":gtext @@s 2 9 255",
"@G = @g",
"for @i = 1; @i <= @N; @i++",
" for @j = 1; @j <= @M; @j++",
" if @@a @i @j",
" @@b (@i - 1) (@j - 1)++; @@b (@i - 1) @j++; @@b (@i - 1) (@j + 1)++",
" @@b @i (@j - 1)++; @@b @i (@j + 1)++",
" @@b (@i + 1) (@j - 1)++; @@b (@i + 1) @j++; @@b (@i + 1) (@j + 1)++",
" endif",
" next",
"next",
"for @i = 0; @i <= @N + 1; @i++",
" for @j = 0; @j <= @M + 1; @j++",
" if @@b @i @j != 2",
" if @@b @i @j == 3; @@a @i @j++; else; @@a @i @j = 0; endif",
" if @@a @i @j >= 255; @@a @i @j = 1; endif",
" endif",
" @@b @i @j = 0",
" next",
"next",
"@g++ # 次の世代"
]
];