summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.rs2
-rw-r--r--src/solvers.rs17
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");
}
}
}