From 72a691de90cb2bbcd5a702f715cfe4c3df95a392 Mon Sep 17 00:00:00 2001 From: Pavel Lutskov Date: Mon, 22 Nov 2021 22:42:21 +0100 Subject: [PATCH] Implement initial Pawn setup --- rs/src/main.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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,