summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2019-05-25 22:52:19 +0200
committerJustin Worthe <justin@worthe-it.co.za>2019-05-25 22:52:19 +0200
commit7b3fe83b4bdb943d3d44ed036150d017279cfe05 (patch)
tree4ed9bc57722d771fdecf9845e2412ec086eb80d0 /src/game
parente9a514409565c17a4a86e8c6402be8d7a4f399ae (diff)
Implemented tracking of the tiebreaking score
Diffstat (limited to 'src/game')
-rw-r--r--src/game/player.rs13
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
};