feat: TrictracBoard for kZero
This commit is contained in:
parent
4e299b04e2
commit
e66d8b6624
5 changed files with 22 additions and 8 deletions
|
|
@ -9,12 +9,13 @@ use log::{debug, error};
|
|||
// use itertools::Itertools;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
use std::hash::{Hash, Hasher};
|
||||
use std::{fmt, str};
|
||||
|
||||
use base64::{engine::general_purpose, Engine as _};
|
||||
|
||||
/// The different stages a game can be in. (not to be confused with the entire "GameState")
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub enum Stage {
|
||||
PreGame,
|
||||
InGame,
|
||||
|
|
@ -22,7 +23,7 @@ pub enum Stage {
|
|||
}
|
||||
|
||||
/// The different stages a game turn can be in.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub enum TurnStage {
|
||||
RollDice,
|
||||
RollWaiting,
|
||||
|
|
@ -114,6 +115,11 @@ impl Default for GameState {
|
|||
}
|
||||
}
|
||||
}
|
||||
impl Hash for GameState {
|
||||
fn hash<H: Hasher>(&self, state: &mut H) {
|
||||
self.to_string_id().hash(state);
|
||||
}
|
||||
}
|
||||
|
||||
impl GameState {
|
||||
/// Create a new default game
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue