Life

Build status Swift Package Manager All platforms Twitter: @zntfdr

欢迎使用 Life,它是 康威生命游戏 的 Swift 实现。

用法

Life 有两个主要实体,WorldCell

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 in action

Life 还附带一个命令行工具,展示其功能。

要安装它,请克隆项目并运行 make

$ git clone https://github.com/zntfdr/Life.git
$ cd Life
$ make

鸣谢

Life 由 Federico Zanetello 构建。

贡献和支持

欢迎并鼓励所有用户积极参与项目的持续开发——通过修复他们遇到的任何错误,或通过改进任何被发现不足的文档。

如果您想做出更改,请打开一个拉取请求,即使它只包含您计划更改的草稿,或者重现问题的测试。

谢谢您,请尽情享受使用 Life