3个版本
0.1.2 | 2024年6月22日 |
---|---|
0.1.1 | 2024年6月22日 |
0.1.0 | 2024年6月22日 |
#128 in 游戏
8KB
139 行
康威生命游戏
康威生命游戏的Rust库实现。
功能
- 创建任意大小的游戏网格
- 迭代游戏状态
- 获取和设置单个细胞状态
- 将游戏状态可视化为字符串
安装
将其添加到你的 Cargo.toml
[dependencies]
conway_game_of_life = "0.1.0"
用法
以下是一个快速示例,说明如何使用库
use conway_game_of_life::ConwayGameGrid;
fn main() {
// Create a 10x10 grid
let mut game = ConwayGameGrid::new(10, 10);
// Set some initial live cells
game.set_cell_state(1, 1, true);
game.set_cell_state(1, 2, true);
game.set_cell_state(1, 3, true);
// Run a single iteration
game.iterate();
// Print the current state
println!("{}", game.dump());
}
API
ConwayGameGrid
表示游戏网格的主要结构。
方法
new(width: usize, height: usize) -> Self
: 创建一个新的游戏网格。iterate(&mut self)
: 将游戏状态推进一代。update_cells(&mut self, cells: &[UpdatedCell])
: 一次性更新多个细胞。get_cell_state(&self, row: usize, col: usize) -> Option<bool>
: 获取特定细胞的当前状态。set_cell_state(&mut self, row: usize, col: usize, state: bool) -> bool
: 设置特定细胞的当前状态。dimensions(&self) -> (usize, usize)
: 获取网格的尺寸。dump(&self) -> String
: 获取当前网格状态的字符串表示。
UpdatedCell
表示单元格更新的结构体。
字段
row: usize
: 单元格的行。col: usize
: 单元格的列。state: bool
: 单元格的新状态。
贡献
欢迎贡献!请随时提交一个Pull Request。
许可
本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE文件。