コード例 #1
0
ファイル: ChessMove.cs プロジェクト: Maniulo/GameWarden
        public void Apply(IGameState state)
        {
            if (state is ChessState)
            {
                var cs = state as ChessState;

                if (Move == null)
                    Move = Solve(cs);

                SavedEnPassant = cs.EnPassant;
                if (!(Move is EnPassantConcrete))
                    cs.EnPassant = null;

                if (Player.Order == 2)
                    ++cs.FullMoves;
                cs.SwitchPlayers();

                Move.Apply(state);
            }
            else
            {
                throw new ArgumentException();
            }
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: Maniulo/GameWarden
 public void AddMove(IConcreteMove m)
 {
     moves.Add(m);
 }
コード例 #3
0
ファイル: Promotion.cs プロジェクト: Maniulo/GameWarden
 public PromotionConcrete(ITemplateMove baseMove, PieceTypes promoteTo, Position from, Position to)
 {
     BaseMove = baseMove.Concretize(from, to);
     PromoteTo = promoteTo;
     From = from;
 }