private ArrayList<AnchorPiece> getAnchorPieces(Board board) {
    ArrayList<AnchorPiece> anchors = new ArrayList<AnchorPiece>();
    ArrayList<Piece> opposingPieces = getOpposingNeighbors(board);
    
    for(Piece p : opposingPieces) {
      int x = this.getX(), y = this.getY();
      int dirX = p.getX() - this.getX();
      int dirY = p.getY() - this.getY();
      Piece step = new Piece(p.getColor());
      
      while(step != null && step.getColor() == p.getColor() && board.placeInRange(x, y)) {
        x += dirX;
        y += dirY;
        step = board.getPiece(x, y);
      }
      
      if(step != null && step.getColor() == this.color) {
        AnchorPiece anchor = new AnchorPiece(this);
        anchor.setAnchor(step);
        anchors.add(anchor);
      }
    }
    
    return anchors;
  }