public class King extends Piece {
    public King(Cell cell, PieceColor pieceColor) {
        super(cell, pieceColor) ;
    }

    @Override
    public boolean isValidMove(Cell c, Cell board[][], Piece pw[], Piece pb[]) {
        if (super.isDeleted()) return false ;
        int sw=0 ;
        if (super.getPieceColor() == PieceColor.BLACK) {
            for (Piece p:pw) {
                if (!p.isDeleted() && p.getCell().getRow()==c.getRow() && p.getCell().getCol()==c.getCol()) sw=1 ;
            }
        }
        else {
            for (Piece p:pb) {
                if (!p.isDeleted() && p.getCell().getRow()==c.getRow() && p.getCell().getCol()==c.getCol()) sw=1 ;
            }
        }
        return ( (
                (this.getCell().getCol() == c.getCol() && Math.abs(this.getCell().getRow() - c.getRow()) == 1) ||
                        (this.getCell().getRow() == c.getRow() && Math.abs(this.getCell().getCol() - c.getCol()) == 1) ||
                        (Math.abs(this.getCell().getCol()-c.getCol())==1 && Math.abs(this.getCell().getRow()-c.getRow())==1)
        ) && (c.isEmpty() || (!c.isEmpty() && sw==1))
        ) ;
    }
}