working piece display + basic moves
This commit is contained in:
80
app/src/main/java/chess/model/Board.java
Normal file
80
app/src/main/java/chess/model/Board.java
Normal 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user