private ArrayList<Integer> generateUpDownDestinations( int position, int[] directions ) {
    ArrayList<Integer> destinations = new ArrayList<Integer>();

    for ( int direction : directions ) {
      for ( int i = 1; isValidDestination( position + i*direction ); i++ ) {
        if ( enemyPieceAt( position + i*direction ) ) {
          destinations.add( position + i*direction );
          break;
        }

        destinations.add( position + i*direction );
      }
    }

    return ( destinations );
  }