aboutsummaryrefslogtreecommitdiff
path: root/src/game.rs
diff options
context:
space:
mode:
authortslil clingman <>2020-01-27 23:12:51 -0800
committertslil clingman <>2020-01-27 23:12:51 -0800
commit04d6efc6eaf31a3ba8c304884725d3c5e9bab9ae (patch)
treed302225eda75570562d04fed20a6d005d0ef24cc /src/game.rs
parent38200848953b1d8d7ba083752c2621603842b54e (diff)
Names, who goes first, date in PTN
Diffstat (limited to 'src/game.rs')
-rw-r--r--src/game.rs27
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,