fix: 2 bots play
This commit is contained in:
parent
447ec8cc58
commit
a3bcdb8912
6 changed files with 51 additions and 21 deletions
|
|
@ -263,7 +263,7 @@ Rolled dice : 0 & 0
|
|||
InGame > myself > RollDice
|
||||
Rolled dice : 4 & 6
|
||||
Rolled dice jans : {}
|
||||
Last move : CheckerMove { from: 24, to: 20 } , CheckerMove { from: 24, to: 18 }
|
||||
Last move : CheckerMove { from: 24, to: 18 } , CheckerMove { from: 24, to: 20 }
|
||||
|
||||
Player :: holes :: points
|
||||
1. myself :: 0 :: 0
|
||||
|
|
|
|||
|
|
@ -20,7 +20,11 @@ impl GameRunner {
|
|||
) -> Self {
|
||||
let mut state = GameState::new(schools_enabled);
|
||||
// local : player
|
||||
let player_id: Option<PlayerId> = state.init_player("myself");
|
||||
let player_id: Option<PlayerId> = if bot_strategies.len() > 1 {
|
||||
None
|
||||
} else {
|
||||
state.init_player("myself")
|
||||
};
|
||||
|
||||
// bots
|
||||
let bots: Vec<Bot> = bot_strategies
|
||||
|
|
@ -55,6 +59,7 @@ impl GameRunner {
|
|||
|
||||
pub fn handle_event(&mut self, event: &GameEvent) -> Option<GameEvent> {
|
||||
if !self.state.validate(event) {
|
||||
println!("event not valid : {:?}", event);
|
||||
return None;
|
||||
}
|
||||
// println!("consuming {:?}", event);
|
||||
|
|
@ -72,9 +77,15 @@ impl GameRunner {
|
|||
.filter_map(|bot| bot.handle_event(event))
|
||||
.collect();
|
||||
|
||||
// if bot_events.len() > 1 {
|
||||
// println!(
|
||||
// "There might be a problem : 2 bots events : {:?}",
|
||||
// bot_events
|
||||
// );
|
||||
// }
|
||||
|
||||
let mut next_event = None;
|
||||
for bot_event in bot_events {
|
||||
println!("bot event {:?}", bot_event);
|
||||
let bot_result_event = self.handle_event(&bot_event);
|
||||
if let Some(bot_id) = bot_event.player_id() {
|
||||
next_event = if self.bot_needs_dice_roll(bot_id) {
|
||||
|
|
@ -85,7 +96,7 @@ impl GameRunner {
|
|||
})
|
||||
} else {
|
||||
bot_result_event
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
next_event
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue