1 个不稳定发布
0.1.0 | 2022 年 5 月 22 日 |
---|
#913 在 游戏 中
15KB
258 行
自定义的康威生命游戏。
这是一个小型简单的库。该库旨在模仿康威的生命游戏,但增加了自定义功能。您可以通过提供自己的闭包来使用 play
或 play_for
方法来编辑规则。此外,[细胞][Cell](方块/像素)是 8 位 RGB 值,这意味着您可以创建一个彩色的生命游戏。
请注意,此库仅提供用于生命游戏的 2D 矩阵操作功能,不提供绘图功能。
示例
这是使用康威生命游戏的正常规则的方式。首先,我们创建一个定义大小和哪些细胞存活以及它们颜色的生命。(您可以通过将 ALIVE
或 DEAD
替换为 RGB 来定义它们。)然后我们使用 play_for
方法应用我们的闭包两次。
const ALIVE: Cell = Cell::alive();
const DEAD: Cell = Cell::dead();
fn main() {
let mut life = Life::from([
[ALIVE, DEAD, ALIVE],
[DEAD, ALIVE, DEAD],
[ALIVE, DEAD, ALIVE],
]);
life.play_for(2, |same, others, _, _| {
let alive = others.alive();
if alive < 2 {
DEAD
}
else if alive == 2 {
same
}
else if alive == 3 {
ALIVE
}
else {
DEAD
}
});
}