Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.06 KB | None | 0 0
  1.     private boolean validateLastMoveForEnPassant(Board board, Coordinate from, Coordinate to) {
  2.         Move lastMove = board.getMoveHistory().get(board.getMoveHistory().size() - 1);
  3.         int lastMoveToX = lastMove.getTo().getX();
  4.         int lastMoveToY = lastMove.getTo().getY();
  5.         Piece lastMovedPiece = lastMove.getMovedPiece();
  6.         Color lastMovedColor = lastMovedPiece.getColor();
  7.         Color attackingPawnColor = board.getPieceAt(from).getColor();
  8.         MoveVector normVec = lastMovedColor == Color.WHITE ? Vectors.WHITE_PAWN_DOUBLE : Vectors.BLACK_PAWN_DOUBLE;
  9.         MoveVector lastMovedVector = new MoveVector(lastMove.getFrom(), lastMove.getTo());
  10.         boolean isPawn = (lastMovedPiece.getType() == PieceType.PAWN);
  11.         boolean isEnemy = (attackingPawnColor != lastMovedColor);
  12.         boolean isYEqual = (lastMoveToY == from.getY());
  13.         boolean isNextTo = (isYEqual && (lastMoveToX == from.getX() + 1 || lastMoveToX == from.getX() - 1));
  14.         boolean isDoubleMove = lastMovedVector.equals(normVec);
  15.         if (isPawn && isEnemy && isNextTo && isDoubleMove) {
  16.             return true;
  17.         } else {
  18.             return false;
  19.         }
  20.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement