-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathn03_place.rs
35 lines (26 loc) · 1.13 KB
/
n03_place.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use bitris::macros::piece;
use bitris::prelude::*;
fn main() {
let mut board = Board64::blank();
let o_north = piece!(ON);
let lines_cleared = o_north.with(bl(0, 0)).place_on_and_clear_lines(&mut board);
assert_eq!(lines_cleared, Some(Lines::blank()));
let lines_cleared = o_north.with(bl(2, 0)).place_on_and_clear_lines(&mut board);
assert_eq!(lines_cleared, Some(Lines::blank()));
let lines_cleared = o_north.with(bl(4, 0)).place_on_and_clear_lines(&mut board);
assert_eq!(lines_cleared, Some(Lines::blank()));
let lines_cleared = o_north.with(bl(6, 0)).place_on_and_clear_lines(&mut board);
assert_eq!(lines_cleared, Some(Lines::blank()));
assert_eq!(format!("{}", board), "(Board64):
..........
########..
########..");
let lines_cleared = o_north.with(bl(8, 0)).place_on_and_clear_lines(&mut board);
assert_eq!(lines_cleared, Some(Lines::new(0b11)));
if let Some(lines) = lines_cleared {
assert_eq!(lines.count(), 2);
}
// Access off board
let lines_cleared = o_north.with(bl(-1, -1)).place_on_and_clear_lines(&mut board);
assert_eq!(lines_cleared, None);
}