import javax.imageio.ImageIO; import java.awt.*; import java.io.File; /** * Piece is an abstract class that all pieces extend from and here we match pics to pieces too. *@author kimiadorani *@version 1.0 *@since 2019-5-7 */ public abstract class Piece { private Cell cell ; private PieceColor pieceColor; private boolean deleted ; public Piece (Cell cell, PieceColor pieceColor) { this.cell = cell ; this.cell.setEmpty(false) ; this.pieceColor = pieceColor; this.deleted = false ; } public abstract boolean isValidMove(Cell c, Cell board[][], Piece pw[], Piece pb[]) ; public Cell getCell() { return cell; } public Image getPieceImage(){ Image image = null; try { if (this instanceof Bishop) { if (getPieceColor().equals(PieceColor.WHITE)) { image = ImageIO.read(new File("./pics/White-Bishop.png")); } else { image = ImageIO.read(new File("./pics/Black-Bishop.png")); } } else if (this instanceof King) { if (getPieceColor().equals(PieceColor.WHITE)) { image = ImageIO.read(new File("./pics/White-King.png")); } else { image = ImageIO.read(new File("./pics/Black-King.png")); } } else if (this instanceof Knight) { if (getPieceColor().equals(PieceColor.WHITE)) { image = ImageIO.read(new File("./pics/White-Knight.png")); } else { image = ImageIO.read(new File("./pics/Black-Knight.png")); } } else if (this instanceof Pawn) { if (getPieceColor().equals(PieceColor.WHITE)) { image = ImageIO.read(new File("./pics/White-Pawn.png")); } else { image = ImageIO.read(new File("./pics/Black-Pawn.png")); } } else if (this instanceof Queen) { if (getPieceColor().equals(PieceColor.WHITE)) { image = ImageIO.read(new File("./pics/White-Queen.png")); } else { image = ImageIO.read(new File("./pics/Black-Queen.png")); } } else if (this instanceof Rook) { if (getPieceColor().equals(PieceColor.WHITE)) { image = ImageIO.read(new File("./pics/White-Rook.png")); } else { image = ImageIO.read(new File("./pics/Black-Rook.png")); } } }catch (Exception exception){ } return image; } public PieceColor getPieceColor() { return pieceColor; } /** * check that if the piece is deleted or not * @return deleted if it was true */ public boolean isDeleted() { return deleted; } public void setCell(Cell cell) { this.cell = cell; } public void setPieceColor(PieceColor pieceColor) { this.pieceColor = pieceColor; } public void setDeleted(boolean deleted) { this.deleted = deleted; } }