#grid #rectangular #pretty-table #neighbor #cell #iterating #storing

md_grid

一个用于在矩形网格中存储和遍历数据的简单库

3 个不稳定版本

0.2.1 2019年3月12日
0.2.0 2019年3月10日
0.1.0 2019年1月2日

#5 in #rectangular

MIT-0 许可证

13KB
254 代码行(不含注释)

这是一个用于表示游戏棋盘的库,提供了执行相关游戏功能的实用工具。

目前仅支持简单的矩形网格。

extern crate grid;
extern crate prettytable;
use grid::Grid;

fn main() {
    let data = vec![
        vec![1, 2, 3, 4],
        vec![5, 6, 7, 8],
        vec![9, 10, 11, 12],
    ];
    let grid = Grid::<usize>::new_from(data);

    // neighbors around 6
    let mut iter = grid.eight_neighbors(1, 1);
    iter.for_each(|cell| println!("{}", cell));

    // for debugging, you can printout the whole grid
    // via pretty table pkg
    grid.pretty_table().printstd();
}

输出

1
2
3
5
7
9

10
11
+---+----+----+----+
| 1 | 2  | 3  | 4  |
+---+----+----+----+
| 5 | 6  | 7  | 8  |
+---+----+----+----+
| 9 | 10 | 11 | 12 |
+---+----+----+----+

也可以查看棋盘示例: cargo run --example chessboard --features="prettytable"

依赖项

~0–0.8MB
~10K SLoC