6 个稳定版本
1.2.0 | 2023 年 10 月 21 日 |
---|---|
1.1.4 | 2021 年 1 月 21 日 |
1.0.0 | 2021 年 1 月 20 日 |
206 在 嵌入式开发
每月 43 次下载
41KB
705 行
Rust 中的细胞自动机底座。以微生物学中使用的 LB 培养基命名。也可以看看 Angelina Fanny Hesse ;). 基底网格是环形的,即坐标值/邻居是环绕的。此代码以 MIT/Apache 2.0 许可证双授权。
示例
- 按网格检索值:
cargo run --example retrieval
- 规则 30 的实现:
cargo run --example rule30
- 将网格状态保存为 JSON:
cargo run --example json
功能
dead-alive-only
启用仅二进制(仅)细胞状态的实用函数。
dead-alive-into-bool
允许死亡/活细胞转换为布尔值。
dead-alive-u8-utils
将 8 个二进制细胞状态分组为一个八位字节,以便更好的处理和 i/o。
版本 / 更改
即将推出
1.2
- 文档扩展
- 代码轻微清理
rule30
示例最小化- 将
cs8_into_u8()
的签名固定为内部兼容 - 添加
u8_into_cs8
实用函数 - 将 CellState / u8 转换分组在功能 "dead-alive-u8-utils" 下
- 删除功能 "dead-alive-into-group-u8"
- 添加 JSON 示例
- 实现
next()
作为迭代器 - 实现
next_byte()
以便更容易进行字节转换
1.1
- 二进制细胞状态现在是显式功能:"dead-alive-only"
- 作为功能:"dead-alive-into-bool" 可选地将二进制细胞状态转换为布尔值
- 通过功能:"dead-alive-into-group-u8" 将八个细胞状态转换为 u8(八位字节)
1.0
- 网格工作(设置和检索细胞状态)
- 实现了宇宙(通过函数指针的规则)
- 测试
- 示例
- 文档
链接
- crate 文档
- 维基百科:细胞自动机
- Wolfram Atlas - 一维细胞自动机的各种类型
- MathWorld:规则30
- ca-rules ... 一个可能的伴随crate
- JSON
依赖
~0.7–1.6MB
~35K SLoC