Build out system to get formatted display.
This commit is contained in:
parent
fc9a706c90
commit
6b9027bdd8
|
@ -59,6 +59,11 @@ impl Board {
|
||||||
tiles: playing_tiles,
|
tiles: playing_tiles,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_index(&self, row: u32, column: u32) -> usize {
|
||||||
|
let width = self.dimensions.get_size();
|
||||||
|
(row * width + column) as usize
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static COLUMN_COORDINATE_BORDER: &str = " ABCDEFGHIJKL";
|
static COLUMN_COORDINATE_BORDER: &str = " ABCDEFGHIJKL";
|
||||||
|
@ -75,16 +80,33 @@ impl fmt::Display for Board {
|
||||||
}
|
}
|
||||||
write!(formatter, "\n")?;
|
write!(formatter, "\n")?;
|
||||||
|
|
||||||
|
for row in 0..width {
|
||||||
|
|
||||||
|
write!(formatter, "{ }", (row + 1).to_string())?;
|
||||||
|
if row % 2 == 0 {
|
||||||
|
write!(formatter, " ")?;
|
||||||
|
}
|
||||||
|
|
||||||
// for {}
|
for col in 0..(width / 2) {
|
||||||
//
|
let token = match self.tiles[self.get_index(row, col)] {
|
||||||
// let square = match tile {
|
BoardTile::Piece(Piece::LightPawn) => "○",
|
||||||
// Piece::LightPawn => "♙",
|
BoardTile::Piece(Piece::LightKing) => "⍟",
|
||||||
// Piece::LightKing => "♔",
|
BoardTile::Piece(Piece::DarkPawn) => "●",
|
||||||
// Piece::DarkPawn => "♟",
|
BoardTile::Piece(Piece::DarkKing) => "✪",
|
||||||
// Piece::DarkKing => "♚",
|
BoardTile::Empty => "✪",
|
||||||
// };
|
};
|
||||||
|
|
||||||
|
let adjacent = if row % 2 == 1 && col == width - 1 {
|
||||||
|
""
|
||||||
|
} else {
|
||||||
|
" "
|
||||||
|
};
|
||||||
|
|
||||||
|
write!(formatter, "{}{}", token, adjacent)?;
|
||||||
|
}
|
||||||
|
|
||||||
|
write!(formatter, "\n")?;
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -99,8 +121,20 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn setup_international_board() {
|
fn setup_international_board() {
|
||||||
|
|
||||||
let expected = r#" ABCDEFGHIJ
|
let expected =
|
||||||
"#;
|
"\
|
||||||
|
ABCDEFGHIJ\n\
|
||||||
|
1 ○ ○ ○ ○ ○\n\
|
||||||
|
2○ ○ ○ ○ ○ \n\
|
||||||
|
3 ○ ○ ○ ○ ○\n\
|
||||||
|
4○ ○ ○ ○ ○ \n\
|
||||||
|
5 ◰ ◰ ◰ ◰ ◰\n\
|
||||||
|
6◰ ◰ ◰ ◰ ◰ \n\
|
||||||
|
7 ● ● ● ● ●\n\
|
||||||
|
8● ● ● ● ● \n\
|
||||||
|
9 ● ● ● ● ●\n\
|
||||||
|
10● ● ● ● ● \n\
|
||||||
|
";
|
||||||
assert_eq!(Board::new(BoardSize::International).to_string(), expected);
|
assert_eq!(Board::new(BoardSize::International).to_string(), expected);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue