diff --git a/store/src/cxxengine.rs b/store/src/cxxengine.rs index 3758e2a..a866e15 100644 --- a/store/src/cxxengine.rs +++ b/store/src/cxxengine.rs @@ -98,9 +98,7 @@ pub fn new_trictrac_engine() -> Box { let mut game_state = GameState::new(false); // schools_enabled = false game_state.init_player("player1"); game_state.init_player("player2"); - game_state - .consume(&GameEvent::BeginGame { goes_first: 1 }) - .expect("BeginGame failed during engine initialization"); + game_state.consume(&GameEvent::BeginGame { goes_first: 1 }); Box::new(TricTracEngine { game_state }) } @@ -191,8 +189,7 @@ impl TricTracEngine { values: (dice.die1, dice.die2), }; self.game_state - .consume(&GameEvent::RollResult { player_id, dice }) - .map_err(|e| anyhow::anyhow!(e))?; + .consume(&GameEvent::RollResult { player_id, dice }); Ok(()) } @@ -211,9 +208,7 @@ impl TricTracEngine { match event { Some(evt) if self.game_state.validate(&evt) => { - self.game_state - .consume(&evt) - .map_err(|e| anyhow::anyhow!(e))?; + self.game_state.consume(&evt); Ok(()) } Some(evt) => anyhow::bail!( diff --git a/store/src/game_rules_moves.rs b/store/src/game_rules_moves.rs index 20fd33d..beff122 100644 --- a/store/src/game_rules_moves.rs +++ b/store/src/game_rules_moves.rs @@ -343,7 +343,7 @@ impl MoveRules { return Err(MoveError::ExitByEffectPossible); } - // The chosen checker must be the farthest from exit + // - la dame choisie doit être la plus éloignée de la sortie // For chained moves (tout d'une), we need to check the board state AFTER the first move let board_to_check = if moves.0.get_to() == moves.1.get_from() { // Chained move: apply first move to get the board state @@ -367,8 +367,9 @@ impl MoveRules { if has_filled_quarter { // When a quarter is filled, we can only exit from fields with >2 checkers // Find the farthest field with >2 checkers (removing one won't break the quarter) - let mut available_checkers: Vec<_> = - checkers.iter().filter(|(_, count)| *count > 2).collect(); + let mut available_checkers: Vec<_> = checkers.iter() + .filter(|(_, count)| *count > 2) + .collect(); if !available_checkers.is_empty() { // Use the farthest available checker (that won't break the quarter) @@ -408,7 +409,7 @@ impl MoveRules { } } - // s'il reste au moins deux dames, on vérifie que les plus éloignées soient choisies + // s'il reste au moins deux dames, on vérifie que les plus éloignées soint choisies if has_two_checkers || has_filled_quarter { if moves.0.get_to() == 0 && moves.1.get_to() == 0 { // Deux coups sortants en excédant