5个版本
0.1.4 | 2022年10月5日 |
---|---|
0.1.3 | 2022年10月5日 |
0.1.2 | 2022年10月4日 |
0.1.1 | 2022年10月4日 |
0.1.0 | 2022年10月2日 |
#975 in 数学
26KB
612 代码行
luacells
一个使用Lua进行规则定义的基于文本的细胞自动机模拟器。
安装
使用cargo
cargo install luacells
使用
luacells rules/life.lua
luacells --help # For more information
您可以在查看器的底部找到控制。
规则格式
规则以具有三个全局变量的Lua程序给出:Update
、Display
和States
。
示例(康威生命游戏)
Update = function(c, n)
local sum = 0
for _, v in ipairs(n) do
sum = sum + v
end
if c == 0 then
if sum == 3 then
return 1
else
return 0
end
else
if sum == 2 or sum == 3 then
return 1
else
return 0
end
end
end
Display = function(n)
if n == 0 then return " " end
if n == 1 then return "()" end
end
States = 2
状态
States
是细胞可以处于的状态数量。
更新
Update
是一个描述如何更新细胞的函数。
它接受两个参数
- 该细胞的先前状态
- 细胞周围正方形区域的先前状态
邻居以以下顺序给出,作为一个表
- 北
- 南
- 东
- 西
- 东北
- 东南
- 西北
- 西南
显示
Display
是显示细胞的函数。
它接受细胞的值,并应返回长度为1或2的字符串。
随机化
您可以在规则文件中添加Randomize = true
以在启动时随机化。
模式格式
模式只是数字行的列表。
行由分号分隔,而单元格由逗号分隔。
此仓库
此仓库包含Rust源代码以及一些规则和模式,位于rules
和patterns
目录中。
依赖项
~4–14MB
~166K SLoC