Start to build game grid

This commit is contained in:
2022-10-07 10:20:21 +02:00
parent 17a4edf417
commit 7178b96077
6 changed files with 118 additions and 2 deletions

View File

@ -172,7 +172,7 @@ impl BoatPosition {
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, Default)]
pub struct BoatsLayout(Vec<BoatPosition>);
pub struct BoatsLayout(pub Vec<BoatPosition>);
impl BoatsLayout {
/// Generate a new invalid (empty) boats layout
@ -331,6 +331,10 @@ impl BoatsLayout {
errors
}
pub fn is_valid(&self, rules: &GameRules) -> bool {
self.errors(rules).is_empty()
}
pub fn find_boat_at_position(&self, pos: Coordinates) -> Option<&BoatPosition> {
self.0.iter().find(|f| f.all_coordinates().contains(&pos))
}