better box drawing

This commit is contained in:
Jana Dönszelmann 2025-09-12 01:02:11 -07:00
parent 3bd28451e9
commit 6ab78f2b1c
No known key found for this signature in database

View file

@ -216,7 +216,7 @@ impl Display for GameState {
self.p2.walls_left, self.p2.walls_left,
d2.at(self.p2.x(), self.p2.y()) d2.at(self.p2.x(), self.p2.y())
)?; )?;
writeln!(f, "┏━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┬━━┓")?; writeln!(f, "╭──┬──┬──┬──┬──┬──┬──┬──┬──╮")?;
for y in 0..9 { for y in 0..9 {
if y > 0 { if y > 0 {
write!(f, "")?; write!(f, "")?;
@ -224,23 +224,49 @@ impl Display for GameState {
let wall = if self.walls.can_walk_between(x, y - 1, x, y) { let wall = if self.walls.can_walk_between(x, y - 1, x, y) {
' ' ' '
} else { } else {
'' ''
}; };
write!(f, "{wall}{wall}")?; write!(f, "{wall}{wall}")?;
if x != 8 { if x != 8 {
write!(f, "")?; let wall_above = !self.walls.can_walk_between(x, y, x + 1, y);
let wall_below =
y != 0 && !self.walls.can_walk_between(x, y - 1, x + 1, y - 1);
let wall_left = y != 0 && !self.walls.can_walk_between(x, y, x, y - 1);
let wall_right =
y != 0 && !self.walls.can_walk_between(x + 1, y, x + 1, y - 1);
match (wall_above, wall_below, wall_left, wall_right) {
(false, false, false, false) => write!(f, "·")?,
(false, true, false, false) => write!(f, "")?,
(true, false, false, false) => write!(f, "")?,
(false, false, true, false) => write!(f, "")?,
(false, false, false, true) => write!(f, "")?,
(true, true, false, false) => write!(f, "")?,
(false, false, true, true) => write!(f, "")?,
(false, true, true, false) => write!(f, "")?,
(true, false, false, true) => write!(f, "")?,
(true, false, true, false) => write!(f, "")?,
(false, true, false, true) => write!(f, "")?,
(true, true, true, false) => write!(f, "")?,
(false, true, true, true) => write!(f, "")?,
(true, false, true, true) => write!(f, "")?,
(true, true, false, true) => write!(f, "")?,
(true, true, true, true) => write!(f, "")?,
}
// write!(f, "┼")?;
} }
} }
write!(f, "\n")?; write!(f, "\n")?;
} else { } else {
write!(f, "")?; write!(f, "")?;
} }
for x in 0..9 { for x in 0..9 {
if x > 0 { if x > 0 {
let wall = if self.walls.can_walk_between(x - 1, y, x, y) { let wall = if self.walls.can_walk_between(x - 1, y, x, y) {
' ' ' '
} else { } else {
'┃' ''
}; };
write!(f, "{wall}")?; write!(f, "{wall}")?;
} }
@ -254,9 +280,9 @@ impl Display for GameState {
}; };
write!(f, "{player}")?; write!(f, "{player}")?;
} }
writeln!(f, "")?; writeln!(f, "")?;
} }
writeln!(f, "┗━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┴━━┛")?; writeln!(f, "╰──┴──┴──┴──┴──┴──┴──┴──┴──╯")?;
Ok(()) Ok(())
} }
} }