custom_values/
custom_values.rs

1extern crate das_grid;
2
3// Your own enum, much better to track grid values
4#[derive(Clone, Copy, PartialEq, Eq)]
5enum Pawn {
6    None,
7    Player,
8}
9
10impl std::fmt::Display for Pawn {
11    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12        match *self {
13            Pawn::None => write!(f, "None"),
14            Pawn::Player => write!(f, "Player"),
15        }
16    }
17}
18
19fn main() -> Result<(), das_grid::GridErr> {
20    // Initialize empty grid
21    let mut g: das_grid::Grid<Pawn> = das_grid::Grid::new(2, 2, Pawn::None);
22
23    // Set the Player on position 5,5
24    g.set((0, 0), &Pawn::Player)?;
25
26    println!("Initial state {:?}\n", g);
27
28    // Move the player to right
29    if let Ok(()) = g.mov_to((0, 0), das_grid::MoveDirection::Right) {
30        // "The pawn on 5,6 is Player"
31        println!("The pawn on 0, 1 is {}\n", g.get((0, 1)).unwrap());
32    }
33
34    println!("End state {:?}\n", g);
35
36    Ok(())
37}