From 4c795da09bddf3630c87ae7f89b411691178e392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Tue, 21 Apr 2020 00:07:08 +0200 Subject: [PATCH] dyske style base24 checkers --- src/main.rs | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/src/main.rs b/src/main.rs index a1c8fb7..7c73688 100644 --- a/src/main.rs +++ b/src/main.rs @@ -53,29 +53,44 @@ impl Default for Game { impl Display for Game { fn fmt(&self, f : &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, " ")?; - for n in (13..=24) { write!(f, " {:2}", n)?; } - write!(f, "\n╭")?; + for n in (13..=24) { + write!(f, "{} ", ('D' as u8 + (n - 13) as u8) as char)?; + } + write!(f, "\n")?; - for b in &self.bins[12..=23] { + for (i, b) in (&self.bins[12..=23]).iter().enumerate() { match *b { - Bin::Empty => write!(f, " ┈┈")?, - Bin::Black(n) => write!(f, "{:2}#", n)?, - Bin::White(n) => write!(f, "{:2}:", n)? + Bin::Empty => { + if i%2==0 { + write!(f, "░░")? + } else { + write!(f, "▒▒")? + } + }, + Bin::Black(n) => write!(f, "{:X}#", n)?, + Bin::White(n) => write!(f, "{:X}:", n)? } } - write!(f, " > {}:\n╰", self.players[Side::Black as usize].born_off)?; + write!(f, "|:{}\n", self.players[Side::Black as usize].born_off)?; - for b in (&self.bins[0..=11]).iter().rev() { + for (i, b) in (&self.bins[0..=11]).iter().rev().enumerate() { match *b { - Bin::Empty => write!(f, " ┈┈")?, - Bin::Black(n) => write!(f, "{:2}#", n)?, //█ - Bin::White(n) => write!(f, "{:2}:", n)? //░ + Bin::Empty => { + if i%2==0 { + write!(f, "░░")? + } else { + write!(f, "▒▒")? + } + }, + Bin::Black(n) => write!(f, "{:X}#", n)?, //█ + Bin::White(n) => write!(f, "{:X}:", n)? //░ } } - write!(f, " > {}#\n ", self.players[Side::Black as usize].born_off)?; - for n in (1..=12).rev() { write!(f, " {:2}", n)?; } + write!(f, "|#{}\n", self.players[Side::Black as usize].born_off)?; + for n in (1..=12).rev() { + write!(f, "{:X} ", n)?; + } write!(f, "\n")?; Ok(())