]> git.lizzy.rs Git - rs2048.git/blob - src/main.rs
a7b3e59414540c08bfa5cd43f996889a37b8d982
[rs2048.git] / src / main.rs
1 pub mod display;
2 pub mod game;
3
4 use game::{Board, Dir::*, Pos};
5
6 fn main() {
7     let mut rng = rand::thread_rng();
8     let getch = getch::Getch::new();
9     let board = Board::new(Pos::new(4, 4));
10
11     board.spawn(&mut rng);
12     clearscreen::clear().unwrap();
13     print!("{board}");
14
15     while let Ok(ch) = getch.getch() {
16         if !board.step(match ch {
17             b'w' => Up,
18             b'a' => Left,
19             b's' => Down,
20             b'd' => Right,
21             b'q' => break,
22             _ => continue,
23         }) {
24             continue;
25         }
26
27         board.spawn(&mut rng);
28         clearscreen::clear().unwrap();
29         print!("{board}");
30     }
31 }