#cell #automata #simulator #command-line

bin+lib cell_sim

用于命令行的 1D 细胞自动机模拟器

6 个版本

0.2.1 2022 年 1 月 25 日
0.2.0 2022 年 1 月 25 日
0.1.0 2022 年 1 月 24 日
0.0.3 2022 年 1 月 22 日

#243模拟

MIT 许可证

10KB
175

cellsim

cellsim 是一个用于命令行的 1D 细胞自动机模拟器,灵感来源于 Stephen Wolfram 的基本细胞自动机。大多数有趣的基本规则都通过此工具添加,但可以使用简单的编码轻松指定新规则。

MIT 许可证

文档

一些结果的截图

A screenshot of results from running cellsim

安装

cellsim 的二进制名称实际上是 cellsim。

cellsim 的二进制目前仅在 crates.io 上提供,可以通过 Rust 的 cargo 包管理器安装

$ cargo install cell_sim

您也可以通过克隆此存储库并使用 cargo build 构建源代码。

用户指南

默认情况下,cellsim 将使用规则 30 来计算自动机。要运行默认设置,可以使用以下命令

$ cellsim <iterations> <initial state>

例如,要生成上面的截图结果,您将运行

$ cellsim 10 "           *           "

其中引号之间的空格代表“死亡”细胞,星号代表“活”细胞。

此外,规则 90、110 和 184 也已内置。要访问这些规则,请添加选项 -r 后跟规则,如下所示

cellsim -r rule90 100 "**   * ******   *"

要指定您自己的规则,可以使用选项 -c,后跟规则的编码版本。标准格式如下

[size of patterns][pattern 1][result][pattern2][result]...

模式大小 是一个 4 位无符号二进制数,必须是奇数。一个 模式 是在 模式大小 中指定的大小,由 0 和 1 组成,其中 0 代表模式中的“死亡”细胞,1 代表“活”细胞。一个 结果 是如果找到模式,下一个细胞的下一个状态,因此使用上面定义的 0 和 1。例如,规则 30 是这样定义的

# Rule 30 in the standard format

001111101100101010010111010100110000

# annotated
# [0011][111][0][110][0]... and so on

这涵盖了程序的基础知识。请注意,将添加新的功能。

依赖项

~3MB
~61K SLoC