|
|
|
|
@ -117,6 +117,8 @@ pub(crate) enum GameError {
|
|
|
|
|
pub(crate) struct Score {
|
|
|
|
|
a: usize,
|
|
|
|
|
b: usize,
|
|
|
|
|
captures_a: usize,
|
|
|
|
|
captures_b: usize
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Score {
|
|
|
|
|
@ -127,17 +129,30 @@ impl Score {
|
|
|
|
|
Piece::Pawn => 1,
|
|
|
|
|
};
|
|
|
|
|
match side {
|
|
|
|
|
Side::A => self.a += i,
|
|
|
|
|
Side::B => self.b += i,
|
|
|
|
|
Side::A => {
|
|
|
|
|
self.captures_a += 1;
|
|
|
|
|
self.a += i;
|
|
|
|
|
},
|
|
|
|
|
Side::B => {
|
|
|
|
|
self.captures_b += 1;
|
|
|
|
|
self.b += i;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub(crate) fn get(&self, side: Side) -> usize {
|
|
|
|
|
pub(crate) fn _get(&self, side: Side) -> usize {
|
|
|
|
|
match side {
|
|
|
|
|
Side::A => self.a,
|
|
|
|
|
Side::B => self.b,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub(crate) fn captures(&self, side: Side) -> usize {
|
|
|
|
|
match side {
|
|
|
|
|
Side::A => self.captures_a,
|
|
|
|
|
Side::B => self.captures_b,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// The board is setup like this:
|
|
|
|
|
@ -636,7 +651,7 @@ fn manage_score(
|
|
|
|
|
mut debug_info: ResMut<debug::DebugInfo>,
|
|
|
|
|
mut score: ResMut<Score>,
|
|
|
|
|
) {
|
|
|
|
|
events.iter().for_each(|side| {
|
|
|
|
|
events.iter().for_each(|(side, piece)| {
|
|
|
|
|
score.increment(!*side, *piece);
|
|
|
|
|
debug_info.set("score".into(), format!("A:{}|B:{}", score.a, score.b));
|
|
|
|
|
});
|
|
|
|
|
|