diff --git a/rs/src/main.rs b/rs/src/main.rs index 2702e1e..8e3518c 100644 --- a/rs/src/main.rs +++ b/rs/src/main.rs @@ -1,3 +1,4 @@ +#[derive(Clone)] enum Color { Black, White, @@ -128,10 +129,31 @@ impl GridAxis for Column { } } +#[derive(Clone)] enum PieceType { Pawn, } +impl PieceType { + fn initial_setup(&self) -> Vec { + 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 { position: Position, color: Color,