working piece display + basic moves

This commit is contained in:
Janet-Doe
2025-03-25 16:50:31 +01:00
parent c8c6019b15
commit d60e66fd09
15 changed files with 430 additions and 17 deletions

View File

@@ -0,0 +1,80 @@
package chess.model;
import chess.model.pieces.*;
public class Board {
private final Cell[][] board;
private static final int WHITE = 0;
private static final int BLACK = 1;
public Board(int size){
board = new Cell[size][size];
for (int y = 0; y < size; y++) {
for (int x = 0; x < size; x++) {
board[y][x] = new Cell();
}
}
setPieces();
}
public Board(){
this(8);
}
public Cell getCell(Coordinates coordinates){
return board[coordinates.getX()][coordinates.getY()];
}
public int getSize(){
return board.length;
}
public void setPieces() throws Error {
if (this.getSize() == 8) {
setPiecesSize8();
}
else {
throw new Error("Oops. This isn't implemented yet.");
}
}
public void setPiecesSize8(){
for (int i = 0; i < 8; i++) {
board[i][1].setPiece(new Pawn(WHITE));
board[i][6].setPiece(new Pawn(BLACK));
if (i==0 || i==7) {
board[i][0].setPiece(new Rook(WHITE));
board[i][7].setPiece(new Rook(BLACK));
}
if (i==1 || i==6) {
board[i][0].setPiece(new Knight(WHITE));
board[i][7].setPiece(new Knight(BLACK));
}
if (i==2 || i==5) {
board[i][0].setPiece(new Bishop(WHITE));
board[i][7].setPiece(new Bishop(BLACK));
}
if (i==3) {
board[i][0].setPiece(new King(WHITE));
board[i][7].setPiece(new King(BLACK));
}
if (i==4) {
board[i][0].setPiece(new Queen(WHITE));
board[i][7].setPiece(new Queen(BLACK));
}
}
}
public Piece getPiece(Coordinates coordinates){
return getCell(coordinates).getPiece();
}
public void movePiece(Coordinates initialPosition, Coordinates finalPosition) throws Error {
Piece movingPiece = getPiece(initialPosition);
Cell arrivalCell = getCell(finalPosition);
getCell(initialPosition).deletePiece();
arrivalCell.setPiece(movingPiece);
}
}