diff options
Diffstat (limited to 'src/game/player.rs')
-rw-r--r-- | src/game/player.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/game/player.rs b/src/game/player.rs index e083a7a..917abef 100644 --- a/src/game/player.rs +++ b/src/game/player.rs @@ -3,6 +3,7 @@ use crate::geometry::*; #[derive(Debug, PartialEq, Eq, Clone)] pub struct Player { + pub moves_score: i32, pub active_worm: usize, pub worms: ArrayVec<[Worm; 3]> } @@ -64,6 +65,14 @@ impl Player { pub fn next_active_worm(&mut self) { self.active_worm = (self.active_worm + 1).checked_rem(self.worms.len()).unwrap_or(0); } + + fn health_score(&self) -> i32 { + self.health() / 3 + } + + pub fn score(&self) -> i32 { + self.moves_score + self.health_score() + } } #[cfg(test)] @@ -96,6 +105,7 @@ mod test { }); let mut player = Player { active_worm: 1, + moves_score: 0, worms: worms }; @@ -134,6 +144,7 @@ mod test { }); let mut player = Player { active_worm: 1, + moves_score: 0, worms: worms }; @@ -172,6 +183,7 @@ mod test { }); let mut player = Player { active_worm: 0, + moves_score: 0, worms: worms }; @@ -196,6 +208,7 @@ mod test { }); let mut player = Player { active_worm: 0, + moves_score: 0, worms: worms }; |