#game-state #conway #grid #life #cell #iterate

conway-gol-rs

Rust中的康威生命游戏实现

3个版本

0.1.2 2024年6月22日
0.1.1 2024年6月22日
0.1.0 2024年6月22日

#128 in 游戏

MIT 许可证

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文件。

无运行时依赖