Implement initial Pawn setup

This commit is contained in:
2021-11-22 22:42:21 +01:00
parent cc58260943
commit 72a691de90

View File

@@ -1,3 +1,4 @@
#[derive(Clone)]
enum Color { enum Color {
Black, Black,
White, White,
@@ -128,10 +129,31 @@ impl GridAxis for Column {
} }
} }
#[derive(Clone)]
enum PieceType { enum PieceType {
Pawn, Pawn,
} }
impl PieceType {
fn initial_setup(&self) -> Vec<Piece> {
match &self {
PieceType::Pawn => [Color::Black, Color::White]
.iter()
.flat_map(|color| {
Column::ALL_VALUES.iter().map(|&column| Piece {
piece_type: self.clone(),
position: Position {
row: color.get_pawn_row(),
column,
},
color: color.clone(),
})
})
.collect(),
}
}
}
struct Piece { struct Piece {
position: Position, position: Position,
color: Color, color: Color,