/* * Rook.java * * Created on February 10, 2007, 6:44 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package chess; /** * * @author Stanislav Hromek */ public class Rook extends Piece { private static final String name = "rook"; private boolean moved = false; /** Creates a new instance of Rook */ public Rook(String pieceColor) { this.pieceColor = pieceColor; } /** * gives info, if rook moved already, used for castling test */ boolean hasMoved(){ return moved; } /** * sets moved parameter by first rook move to true */ void setHasMoved(){ moved = true; } /** * test if the squares between start and end square are all empty */ boolean isRoadOk(Board board, String movePieceFrom, String movePieceTo) { // get squares between (vertical and horizontal) if(board.isHorizontal(movePieceFrom, movePieceTo)){ Square[] squares = board.getSquaresHorizontal(movePieceFrom, movePieceTo); for (int i = 0; i < squares.length; i++) { if(squares[i].getPiece() != null) return false; } } else if(board.isVertical(movePieceFrom, movePieceTo)){ Square[] squares = board.getSquaresVertical(movePieceFrom, movePieceTo); for (int i = 0; i < squares.length; i++) { if(squares[i].getPiece() != null) return false; } } else assert false; return true; } boolean possibleToMoveToEndSquare(Board board, String movePieceFrom, String movePieceTo) { if(board.isHorizontal(movePieceFrom, movePieceTo) || board.isVertical(movePieceFrom, movePieceTo)) return true; else return false; } public String getName() { return name; } }