diff options
author | Justin Worthe <justin@worthe-it.co.za> | 2019-05-25 22:52:19 +0200 |
---|---|---|
committer | Justin Worthe <justin@worthe-it.co.za> | 2019-05-25 22:52:19 +0200 |
commit | 7b3fe83b4bdb943d3d44ed036150d017279cfe05 (patch) | |
tree | 4ed9bc57722d771fdecf9845e2412ec086eb80d0 /src/game | |
parent | e9a514409565c17a4a86e8c6402be8d7a4f399ae (diff) |
Implemented tracking of the tiebreaking score
Diffstat (limited to 'src/game')
-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 }; |