This commit is contained in:
Henri Bourcereau 2026-02-19 17:34:17 +01:00
parent b7525a9ee6
commit d67b7a7c01
3 changed files with 36 additions and 1 deletions

View file

@ -8,7 +8,7 @@ use log::{debug, error};
// use itertools::Itertools;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::collections::{HashMap, HashSet};
use std::hash::{Hash, Hasher};
use std::{fmt, str};
@ -143,6 +143,27 @@ impl GameState {
game
}
pub fn mirror(&self) -> GameState {
let mirrored_active_player = if self.active_player_id == 1 { 0 } else { 1 };
let mut mirrored_players = HashMap::new();
mirrored_players.insert(1, self.players.get(&2).unwrap().mirror());
mirrored_players.insert(2, self.players.get(&1).unwrap().mirror());
GameState {
stage: self.stage,
turn_stage: self.turn_stage,
board: self.board.mirror(),
active_player_id: mirrored_active_player,
players: mirrored_players,
history: Vec::new(),
dice: self.dice,
dice_points: self.dice_points,
dice_moves: (CheckerMove::default(), CheckerMove::default()),
dice_jans: PossibleJans::default(),
roll_first: self.roll_first,
schools_enabled: self.schools_enabled,
}
}
fn set_schools_enabled(&mut self, schools_enabled: bool) {
self.schools_enabled = schools_enabled;
}