示例#1
0
        public DefaultMoveExecutor(string board, string newMove, Turn turn,
                                   GameState gameState, string whiteKingPosition, string blackKingPosition, string lastMove,
                                   bool whiteCanCastleKingSide, bool whiteCanCastleQueenSide, bool blackCanCastleKingSide,
                                   bool blackCanCastleQueenSide)
        {
            FieldPosition whiteKing = FieldPosition.ParsePosition(whiteKingPosition);
            FieldPosition blackKing = FieldPosition.ParsePosition(blackKingPosition);

            this.oldState = new BoardModel(GetBoard(board), turn, gameState, whiteKing, blackKing,
                                           whiteCanCastleKingSide, whiteCanCastleQueenSide, blackCanCastleKingSide, blackCanCastleQueenSide);

            this.newState = new BoardModel(GetBoard(board), turn, gameState, whiteKing, blackKing,
                                           whiteCanCastleKingSide, whiteCanCastleQueenSide, blackCanCastleKingSide, blackCanCastleQueenSide);

            // Parse new move
            string[] splt = newMove.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            this.source = FieldPosition.ParsePosition(splt[0]);
            this.dest   = FieldPosition.ParsePosition(splt[1]);

            if (lastMove != null)
            {
                // Parse last move
                splt = lastMove.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                this.lastMoveSource = FieldPosition.ParsePosition(splt[0]);
                this.lastMoveDest   = FieldPosition.ParsePosition(splt[1]);
            }

            this.sourcePiece = this.newState.Board[source.Row, source.Col];
        }
        public DefaultMoveExecutor(string board, string newMove, Turn turn,
            GameState gameState, string whiteKingPosition, string blackKingPosition, string lastMove,
            bool whiteCanCastleKingSide, bool whiteCanCastleQueenSide, bool blackCanCastleKingSide,
            bool blackCanCastleQueenSide)
        {
            FieldPosition whiteKing = FieldPosition.ParsePosition(whiteKingPosition);
            FieldPosition blackKing = FieldPosition.ParsePosition(blackKingPosition);

            this.oldState = new BoardModel(GetBoard(board), turn, gameState, whiteKing, blackKing,
                whiteCanCastleKingSide, whiteCanCastleQueenSide, blackCanCastleKingSide, blackCanCastleQueenSide);

            this.newState = new BoardModel(GetBoard(board), turn, gameState, whiteKing, blackKing,
                whiteCanCastleKingSide, whiteCanCastleQueenSide, blackCanCastleKingSide, blackCanCastleQueenSide);

            // Parse new move
            string[] splt = newMove.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            this.source = FieldPosition.ParsePosition(splt[0]);
            this.dest = FieldPosition.ParsePosition(splt[1]);

            if (lastMove != null)
            {
                // Parse last move
                splt = lastMove.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                this.lastMoveSource = FieldPosition.ParsePosition(splt[0]);
                this.lastMoveDest = FieldPosition.ParsePosition(splt[1]);
            }

            this.sourcePiece = this.newState.Board[source.Row, source.Col];
        }
 private void RollbackChanges()
 {
     this.newState = this.oldState;
 }
示例#4
0
 private void RollbackChanges()
 {
     this.newState = this.oldState;
 }