/* * Queen.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 Queen extends Piece { private static final String name = "queen"; /** Creates a new instance of Queen */ public Queen(String pieceColor) { this.pieceColor = pieceColor; } boolean isRoadOk(Board board, String movePieceFrom, String movePieceTo) { // get squares between (vertical, horizontal and diagonal) 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 if(board.isDiagonal(movePieceFrom, movePieceTo)){ Square[] squares = board.getSquaresDiagonal(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) || board.isDiagonal(movePieceFrom, movePieceTo)) return true; else return false; } public String getName() { return name; } }