62 lines
2.3 KiB
Java
62 lines
2.3 KiB
Java
package chess.controller.commands;
|
|
|
|
import chess.controller.Command;
|
|
import chess.controller.event.GameListener;
|
|
import chess.model.ChessBoard;
|
|
import chess.model.Color;
|
|
import chess.model.Coordinate;
|
|
import chess.model.Game;
|
|
import chess.model.pieces.Bishop;
|
|
import chess.model.pieces.King;
|
|
import chess.model.pieces.Knight;
|
|
import chess.model.pieces.Pawn;
|
|
import chess.model.pieces.Queen;
|
|
import chess.model.pieces.Rook;
|
|
|
|
/**
|
|
* Command to create a new game.
|
|
*/
|
|
public class NewGameCommand extends Command {
|
|
public CommandResult execute(Game game, GameListener outputSystem) {
|
|
final ChessBoard board = game.getBoard();
|
|
|
|
board.clearBoard();
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
board.pieceComes(new Pawn(Color.Black), new Coordinate(i, 1));
|
|
board.pieceComes(new Pawn(Color.White), new Coordinate(i, Coordinate.VALUE_MAX - 2));
|
|
}
|
|
|
|
board.pieceComes(new Rook(Color.Black), new Coordinate(0, 0));
|
|
board.pieceComes(new Rook(Color.Black), new Coordinate(Coordinate.VALUE_MAX - 1, 0));
|
|
|
|
board.pieceComes(new Rook(Color.White), new Coordinate(0, Coordinate.VALUE_MAX - 1));
|
|
board.pieceComes(new Rook(Color.White), new Coordinate(Coordinate.VALUE_MAX - 1, Coordinate.VALUE_MAX - 1));
|
|
|
|
board.pieceComes(new Knight(Color.Black), new Coordinate(1, 0));
|
|
board.pieceComes(new Knight(Color.Black), new Coordinate(Coordinate.VALUE_MAX - 2, 0));
|
|
|
|
board.pieceComes(new Knight(Color.White), new Coordinate(1, Coordinate.VALUE_MAX - 1));
|
|
board.pieceComes(new Knight(Color.White), new Coordinate(Coordinate.VALUE_MAX - 2, Coordinate.VALUE_MAX - 1));
|
|
|
|
board.pieceComes(new Bishop(Color.Black), new Coordinate(2, 0));
|
|
board.pieceComes(new Bishop(Color.Black), new Coordinate(Coordinate.VALUE_MAX - 3, 0));
|
|
|
|
board.pieceComes(new Bishop(Color.White), new Coordinate(2, Coordinate.VALUE_MAX - 1));
|
|
board.pieceComes(new Bishop(Color.White), new Coordinate(Coordinate.VALUE_MAX - 3, Coordinate.VALUE_MAX - 1));
|
|
|
|
board.pieceComes(new Queen(Color.Black), new Coordinate(3, 0));
|
|
board.pieceComes(new King(Color.Black), new Coordinate(4, 0));
|
|
|
|
board.pieceComes(new Queen(Color.White), new Coordinate(3, Coordinate.VALUE_MAX - 1));
|
|
board.pieceComes(new King(Color.White), new Coordinate(4, Coordinate.VALUE_MAX - 1));
|
|
|
|
game.reset();
|
|
|
|
outputSystem.onGameStart();
|
|
outputSystem.onPlayerTurn(game.getPlayerTurn(), false);
|
|
|
|
return CommandResult.NotMoved;
|
|
}
|
|
}
|