summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2019-12-20 06:48:31 +0100
committerDennis Kobert <dennis@kobert.dev>2019-12-20 06:48:31 +0100
commit898a7f80a3dd22ef4844893b38589b819c037f30 (patch)
treec544d9c16f95092817d0190bcde4dc675b0501a2
parenta39405f8e26bdd4db304fe1ea13dccf9400d0445 (diff)
parent4fa0425d237f0a55d9d3d08138f2a5854eb3130f (diff)
Merge branch 'master' of kobert:/var/repos/babelbitset
-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");
}
}
}