欢迎使用 Life,它是 康威生命游戏 的 Swift 实现。
Life 有两个主要实体,World
和 Cell
World
代表游戏空间,这是一个由正方形单元格组成的二维正交网格,它也跟踪当前世代的存活单元格。
Cell
代表世界中的一个特定单元格。
import Life
// Create a World instance.
var world = try World(rows: rows, columns: columns)
// Add alive cells.
world.add(Cell(row: .., column: ..))
world.add(Cell(row: .., column: ..))
...
// Spawn the next world generations.
world.spawnNextGeneration()
world.spawnNextGeneration()
...
一个 World
实例仅记住当前存活世代,可以通过 aliveCells
属性访问。
在任何时候都可以添加新的存活单元格,并且可以移除旧的存活单元格,要做到这一点,请使用 World
实例方法 add(_:)
和 remove(_:)
。
最后,World
公开了一个 isCellAlive(_:)
实例方法,用于检查指定的单元格是否是当前世代的一部分。
您可以在
Tests
文件夹中找到更多示例。
Life 有两种模式:Simple 和 Loop。
模式在创建新的 World
实例时指定(默认模式是 .simple
)
var world = try World(rows: rows, columns: columns, mode: .loop)
Simple (简单) | Loop (循环) |
---|---|
世界边缘之外的任何单元格都被认为是死亡的。 | 世界的左右边缘缝合在一起,世界的顶部和底部边缘缝合在一起。 |
![]() |
![]() |
Life 使用 Swift Package Manager 分发。要将其安装到项目中,请按照 本教程 操作,并使用此仓库 URL:https://github.com/zntfdr/Life.git
。
Life 还附带一个命令行工具,展示其功能。
要安装它,请克隆项目并运行 make
$ git clone https://github.com/zntfdr/Life.git
$ cd Life
$ make
Life 由 Federico Zanetello 构建。
欢迎并鼓励所有用户积极参与项目的持续开发——通过修复他们遇到的任何错误,或通过改进任何被发现不足的文档。
如果您想做出更改,请打开一个拉取请求,即使它只包含您计划更改的草稿,或者重现问题的测试。
谢谢您,请尽情享受使用 Life!