better box drawing
This commit is contained in:
parent
3bd28451e9
commit
6ab78f2b1c
1 changed files with 34 additions and 8 deletions
|
|
@ -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(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue