Files
3DChess/app/src/main/java/chess/io/commands/NewGameCommand.java
2025-04-02 10:54:14 +02:00

57 lines
2.2 KiB
Java

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;
}
}