Beispiel #1
0
 private GameState(GameState gs)
 {
     this.game = gs.game;
     this.CurrentPlayerID = gs.CurrentPlayerID;
     this.Board = new Dictionary<Coords, Piece>(gs.Board);
     this.OverrideNextPlayer = gs.OverrideNextPlayer;
     this.GlobalContext = (Game.GlobalContext)gs.GlobalContext.Clone(this);
     foreach (var player in game.EnumeratePlayers())
     {
         offboard.Add(player, new HashSet<Piece>(gs.GetOffboard(player)));
     }
 }
Beispiel #2
0
 public IEnumerable<Piece> GetOffboard(GameState state)
 {
     var pieces = state.GetOffboard(this);
     return new HashSet<Piece>(pieces);
 }
Beispiel #3
0
 internal void AddOffboard(GameState state, Piece p)
 {
     var pieces = state.GetOffboard(this);
     pieces.Add(p);
 }
Beispiel #4
0
 internal bool RemoveOffBoard(GameState state, Piece p)
 {
     var pieces = state.GetOffboard(this);
     if (pieces.Contains(p))
     {
         pieces.Remove(p);
         return true;
     }
     else
     {
         return false;
     }
 }