diff --git a/src/logic/board/mod.rs b/src/logic/board/mod.rs index fb0a2bd..079d7f1 100644 --- a/src/logic/board/mod.rs +++ b/src/logic/board/mod.rs @@ -1,3 +1,3 @@ pub mod board; mod field; -mod pawn; +pub mod pawn; diff --git a/src/logic/board/pawn.rs b/src/logic/board/pawn.rs index 9693334..f5e9db1 100644 --- a/src/logic/board/pawn.rs +++ b/src/logic/board/pawn.rs @@ -1,5 +1,3 @@ -use core::fmt; - use uuid::Uuid; use crate::logic::{math::position::Position, player::Player}; diff --git a/src/logic/game_master.rs b/src/logic/game_master.rs index 51f028b..c79c760 100644 --- a/src/logic/game_master.rs +++ b/src/logic/game_master.rs @@ -1,4 +1,7 @@ -use crate::logic::{board::board::Board, player::Player}; +use crate::logic::{ + board::{board::Board, pawn::CapturePath}, + player::Player, +}; struct PlayerList { pub players: [Player; 2], @@ -38,4 +41,16 @@ impl GameMaster { GameMaster { players, board } } + + pub fn get_current_player_captures(&self) -> Vec { + self.board + .get_player_pawns_positions(self.players.get_current_turn()) + .into_iter() + .filter_map(|pos| { + self.board + .get_available_captures(pos, self.players.get_current_turn()) + }) + .flatten() + .collect() + } }