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 BoardModel(char[,] board, Turn turn, GameState gameState, FieldPosition whiteKingPosition, FieldPosition blackKingPosition, bool whiteCanCastleKingSide, bool whiteCanCastleQueenSide, bool blackCanCastleKingSide, bool blackCanCastleQueenSide) { this.Board = board; this.Turn = turn; this.GameState = gameState; this.WhiteKingPosition = whiteKingPosition; this.BlackKingPosition = blackKingPosition; this.WhiteCanCastleKingSide = whiteCanCastleKingSide; this.WhiteCanCastleQueenSide = whiteCanCastleQueenSide; this.BlackCanCastleKingSide = blackCanCastleKingSide; this.BlackCanCastleQueenSide = blackCanCastleQueenSide; }