2个不稳定版本

使用旧的Rust 2015

0.1.0 2018年8月26日
0.0.7 2018年8月11日

#1220 in 数学

LGPL-3.0-or-later

42KB
891

rlife

一个用Rust编写的生命库。

它是一个旨在操作生命细胞自动机网格的库。目前它支持

  • 环形和可调整大小的网格
  • 加载和保存包含网格数据的文件
  • 前进网格的世代(如果是可调整大小的网格,它将确保模式始终位于网格中心)

这个库的目标

  • 支持网格操作的分发和并行计算(GPU和网络)。
  • 使用机器学习进行模式分析。

关于使用的文件格式

目前,rlife使用两种内部文件格式:可调整大小的生命和环形生命。

可调整大小的生命

此文件格式类似于Life 1.06格式

  • "#可调整大小的生命"之后是可选的描述行,以"#D"开头。忽略前导和尾随空格。
  • 接下来是一个可选的规则指定。这里的模式使用"#N"指定符强制执行"正常"康威规则。替代规则使用"#R"("#N"与"#R 23/3"完全相同)。规则以生存/出生编码,每个列表都是一个表示邻居计数的数字字符串。由于在康威式规则中恰好有八个可能的邻居,因此不需要分隔数字,两个列表中都不允许出现"9"。
  • 最后是一个包含活动细胞的(x y)坐标列表。

环形生命

此文件格式类似于Life 1.06格式

  • "#环形生命"之后是可选的描述行,以"#D"开头。忽略前导和尾随空格。
  • 接下来是一个可选的规则指定。这里的模式使用"#N"指定符强制执行"正常"康威规则。替代规则使用"#R"("#N"与"#R 23/3"完全相同)。规则以生存/出生编码,每个列表都是一个表示邻居计数的数字字符串。由于在康威式规则中恰好有八个可能的邻居,因此不需要分隔数字,两个列表中都不允许出现"9"。
  • 接下来有一行像这样"#S ",定义网格的大小。
  • 最后是一个包含活动细胞的(x y)坐标列表。

依赖关系

~385KB