From e45fd3981abc48c29d258763a156f0f9ee78f2c4 Mon Sep 17 00:00:00 2001 From: Pavel Lutskov Date: Tue, 23 Nov 2021 22:47:56 +0100 Subject: [PATCH] Implement board setup --- rs/src/main.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/rs/src/main.rs b/rs/src/main.rs index 8e3518c..39d70a6 100644 --- a/rs/src/main.rs +++ b/rs/src/main.rs @@ -25,6 +25,7 @@ impl Color { } } +#[derive(Clone)] struct Position { row: Row, column: Column, @@ -203,4 +204,26 @@ impl Piece { } } +struct Board { + state: [[Option; Column::ALL_VALUES.len()]; Row::ALL_VALUES.len()], +} + +impl Board { + fn set_at(&mut self, position: &Position, piece: Piece) { + self.state[position.row.get_index() as usize] + [position.column.get_index() as usize] = Some(piece); + } + fn new() -> Board { + let mut board = Board { + state: Default::default(), + }; + for piece_type in &[PieceType::Pawn] { + for piece in piece_type.initial_setup() { + board.set_at(&piece.position.clone(), piece); + } + } + board + } +} + fn main() {}