Пример #1
0
 public boolean isValidMovePrefix(Move otherMove) {
   Piece otherPiece = otherMove.getPiece();
   if (otherPiece.getPieceColor() != piece.getPieceColor()
       || otherMove.getPieceColumn() != pieceColumn
       || otherMove.getPieceRow() != pieceRow) {
     return false;
   }
   Iterator<ChessboardPosition> it = steps.iterator();
   for (ChessboardPosition cp : otherMove.getSteps()) {
     if (!it.hasNext() || !cp.equals(it.next())) {
       return false;
     }
   }
   return true;
 }
Пример #2
0
  public void doMove(Chessboard chessboard) {
    for (ChessboardPosition chessboardPosition : steps) {
      int rowDirection = Integer.signum(chessboardPosition.getRow() - this.pieceRow);
      int columnDirection = Integer.signum(chessboardPosition.getColumn() - this.pieceColumn);
      while (chessboardPosition.getRow() != this.pieceRow) {
        chessboard.capture(pieceRow, pieceColumn);
        pieceRow += rowDirection;
        pieceColumn += columnDirection;
      }
      chessboard.movePiece(pieceRow, pieceColumn, piece);
    }

    if (piece instanceof Pawn
        && ((piece.getPieceColor().equals(PieceColor.WHITE)
                && pieceRow == Chessboard.CHESSBOARD_SIZE - 1)
            || (piece.getPieceColor().equals(PieceColor.BLACK) && pieceRow == 0))) {
      piece = new King(piece.getPieceColor());
      chessboard.movePiece(pieceRow, pieceColumn, piece);

      // System.out.println("New king!");
    }
  }
Пример #3
0
  private JLabel determinePiece(Piece piece) throws IOException {

    if (piece.getPieceColor() == PieceColor.WHITE) {
      switch (piece.getPieceType().name()) {
        case ("KING"):
          JLabel wKing = new JLabel(new ImageIcon(ImageIO.read(new File("art/wKing.png"))));
          wKing.setSize(new Dimension(64, 64));
          return wKing;

        case ("QUEEN"):
          JLabel wQueen = new JLabel(new ImageIcon(ImageIO.read(new File("art/wQueen.png"))));
          wQueen.setSize(new Dimension(64, 64));
          return wQueen;

        case ("BISHOP"):
          JLabel wBishop = new JLabel(new ImageIcon(ImageIO.read(new File("art/wBishop.png"))));
          wBishop.setSize(new Dimension(64, 64));
          return wBishop;

        case ("KNIGHT"):
          JLabel wKnight = new JLabel(new ImageIcon(ImageIO.read(new File("art/wKnight.png"))));
          wKnight.setSize(new Dimension(64, 64));
          return wKnight;

        case ("ROOK"):
          JLabel wRook = new JLabel(new ImageIcon(ImageIO.read(new File("art/wRook.png"))));
          wRook.setSize(new Dimension(64, 64));
          return wRook;

        case ("PAWN"):
          JLabel wPawn = new JLabel(new ImageIcon(ImageIO.read(new File("art/wPawn.png"))));
          wPawn.setSize(new Dimension(64, 64));
          return wPawn;

        default:
          throw new IllegalArgumentException();
      }
    } else {
      switch (piece.getPieceType().name()) {
        case ("KING"):
          JLabel bKing = new JLabel(new ImageIcon(ImageIO.read(new File("art/bKing.png"))));
          bKing.setSize(new Dimension(64, 64));
          return bKing;

        case ("QUEEN"):
          JLabel bQueen = new JLabel(new ImageIcon(ImageIO.read(new File("art/bQueen.png"))));
          bQueen.setSize(new Dimension(64, 64));
          return bQueen;

        case ("BISHOP"):
          JLabel bBishop = new JLabel(new ImageIcon(ImageIO.read(new File("art/bBishop.png"))));
          bBishop.setSize(new Dimension(64, 64));
          return bBishop;

        case ("KNIGHT"):
          JLabel bKnight = new JLabel(new ImageIcon(ImageIO.read(new File("art/bKnight.png"))));
          bKnight.setSize(new Dimension(64, 64));
          return bKnight;

        case ("ROOK"):
          JLabel bRook = new JLabel(new ImageIcon(ImageIO.read(new File("art/bRook.png"))));
          bRook.setSize(new Dimension(64, 64));
          return bRook;

        case ("PAWN"):
          JLabel bPawn = new JLabel(new ImageIcon(ImageIO.read(new File("art/bPawn.png"))));
          bPawn.setSize(new Dimension(64, 64));
          return bPawn;

        default:
          throw new IllegalArgumentException();
      }
    }
  }