diff options
| author | tslil clingman <> | 2020-01-27 23:12:51 -0800 |
|---|---|---|
| committer | tslil clingman <> | 2020-01-27 23:12:51 -0800 |
| commit | 04d6efc6eaf31a3ba8c304884725d3c5e9bab9ae (patch) | |
| tree | d302225eda75570562d04fed20a6d005d0ef24cc /src/game.rs | |
| parent | 38200848953b1d8d7ba083752c2621603842b54e (diff) | |
Names, who goes first, date in PTN
Diffstat (limited to 'src/game.rs')
| -rw-r--r-- | src/game.rs | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/game.rs b/src/game.rs index 3c15796..5db2c48 100644 --- a/src/game.rs +++ b/src/game.rs @@ -670,14 +670,20 @@ pub struct Game { size: u8, current_player: Player, turn_order: TurnOrder, - white_player_name: String, - black_player_name: String, actions: Vec<Action>, states: Vec<GameState>, + white_player_name: String, + black_player_name: String, + date_string: String, } impl Game { - pub fn new(size: u8, white_player_name: &str, black_player_name: &str) -> (Game, String) { + pub fn new( + size: u8, + white_player_name: &str, + black_player_name: &str, + date_str: &str, + ) -> (Game, String) { let (size, warning) = if (size <= 3) || (size >= 8) { (5, format!("Warning: the requested game size of {}x{} is not supported, defaulting to 5x5.", size, size)) @@ -688,12 +694,13 @@ impl Game { ( Game { size: size, - white_player_name: white_player_name.to_string(), - black_player_name: black_player_name.to_string(), states: vec![GameState::new(size)], actions: Vec::new(), current_player: Player::White, turn_order: TurnOrder::WhitePlacesBlack, + white_player_name: white_player_name.to_string(), + black_player_name: black_player_name.to_string(), + date_string: date_str.to_string(), }, warning, ) @@ -709,6 +716,13 @@ impl Game { self.last_state().query_pos(pos) } + pub fn query_current_player_name(&self) -> &str { + match self.current_player { + Player::Black => &self.black_player_name, + Player::White => &self.white_player_name, + } + } + pub fn query_pieces(&self, player: Player, stone: Stone) -> u8 { self.last_state().remaining_pieces(player, stone) } @@ -826,7 +840,8 @@ impl fmt::Display for Game { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!( f, - "[Date \"\"]\n[Player1 \"{}\"]\n[Player2 \"{}\"]\n[Size \"{}\"]\n{}", + "[Date \"{}\"]\n[Player1 \"{}\"]\n[Player2 \"{}\"]\n[Size \"{}\"]\n{}", + self.date_string, self.white_player_name, self.black_player_name, self.size, |
