package chess.io.commands; import chess.io.Command; import chess.io.CommandResult; import chess.io.OutputSystem; 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; public class NewGameCommand extends Command { public CommandResult execute(Game game, OutputSystem outputSystem) { ChessBoard board = game.getBoard(); for (int i = 0; i < 8; i++) { board.pieceComes(new Pawn(Color.Black), new Coordinate(i, 0)); board.pieceComes(new Pawn(Color.White), new Coordinate(i, Coordinate.VALUE_MAX - 1)); } board.pieceComes(new Rook(Color.Black), new Coordinate(0, 1)); board.pieceComes(new Rook(Color.Black), new Coordinate(Coordinate.VALUE_MAX - 1, 1)); board.pieceComes(new Rook(Color.White), new Coordinate(0, Coordinate.VALUE_MAX - 2)); board.pieceComes(new Rook(Color.White), new Coordinate(Coordinate.VALUE_MAX - 1, Coordinate.VALUE_MAX - 2)); board.pieceComes(new Knight(Color.Black), new Coordinate(1, 1)); board.pieceComes(new Knight(Color.Black), new Coordinate(Coordinate.VALUE_MAX - 2, 1)); board.pieceComes(new Knight(Color.White), new Coordinate(1, Coordinate.VALUE_MAX - 2)); board.pieceComes(new Knight(Color.White), new Coordinate(Coordinate.VALUE_MAX - 2, Coordinate.VALUE_MAX - 2)); board.pieceComes(new Bishop(Color.Black), new Coordinate(2, 1)); board.pieceComes(new Bishop(Color.Black), new Coordinate(Coordinate.VALUE_MAX - 3, 1)); board.pieceComes(new Bishop(Color.White), new Coordinate(2, Coordinate.VALUE_MAX - 2)); board.pieceComes(new Bishop(Color.White), new Coordinate(Coordinate.VALUE_MAX - 3, Coordinate.VALUE_MAX - 2)); board.pieceComes(new Queen(Color.Black), new Coordinate(4, 1)); board.pieceComes(new King(Color.Black), new Coordinate(3, 1)); board.pieceComes(new Queen(Color.White), new Coordinate(4, Coordinate.VALUE_MAX - 2)); board.pieceComes(new King(Color.White), new Coordinate(3, Coordinate.VALUE_MAX - 2)); game.resetPlayerTurn(); outputSystem.gameStarted(); return CommandResult.NotMoved; } }