diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 2 | ||||
-rw-r--r-- | src/solvers.rs | 17 |
2 files changed, 9 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs index 9f15fd8..3c8449c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ mod solvers; fn main() { - let mut solver = solvers::Solver::<u8>::new(2); + let mut solver = solvers::Solver::<u8>::new(4); let wall = solver.solve(); wall.output(solver.n, solver.h); } diff --git a/src/solvers.rs b/src/solvers.rs index 7e17b38..cf46030 100644 --- a/src/solvers.rs +++ b/src/solvers.rs @@ -14,6 +14,7 @@ impl Wall { v.push(1); v }; + let heights = vec![0, 1, 0, 2, 1, 0, 2, 2, 1]; Self { heights } } @@ -32,20 +33,18 @@ impl Wall { pub fn output(&self, n: u32, h: u32) { let mut stones = vec![0; n as usize]; + let mut toggle = 0; + let colors = ["\x1b[31m", "\x1b[32m", "\x1b[33m", "\x1b[34m", "\x1b[35m", "\x1b[36m"]; for row in 0..h { self.calculate_row(row, &mut stones); for &len in stones.iter() { - if len <= 1 { - print!("◼"); - } else if len > 1 { - print!("◢"); - for _ in 0..(len - 2) { - print!("◼"); - } - print!("◣"); + print!("{}", colors[toggle]); + toggle = (toggle + 1) % colors.len(); + for _ in 0..len { + print!("◙"); } } - println!(""); + println!("\x1b[m"); } } } |