private static float determineEnemyBlitzStrength(final Territory blitzHere,final List<Route> blitzTerrRoutes,final List<Territory> blockTerr,final GameData data,final PlayerID ePlayer){
  final HashSet<Integer> ignore=new HashSet<>();
  ignore.add(1);
  final CompositeMatch<Unit> blitzUnit=new CompositeMatchAnd<>(Matches.unitIsOwnedBy(ePlayer),Matches.UnitCanBlitz,Matches.UnitCanMove);
  final CompositeMatch<Territory> validBlitzRoute=new CompositeMatchAnd<>(Matches.territoryHasNoEnemyUnits(ePlayer,data),Matches.TerritoryIsNotImpassableToLandUnits(ePlayer,data));
  final List<Route> routes=new ArrayList<>();
  final List<Unit> blitzUnits=findAttackers(blitzHere,2,ignore,ePlayer,data,blitzUnit,validBlitzRoute,blockTerr,routes,false);
  for (  final Route r : routes) {
    if (r.numberOfSteps() == 2) {
      blitzTerrRoutes.add(r);
    }
  }
  return strength(blitzUnits,true,false,true);
}

private static float determineEnemyBlitzStrength ( final Territory blitzHere , final List < Route > blitzTerrRoutes , final List < Territory > blockTerr , final GameData data , final PlayerID ePlayer ) { final HashSet < Integer > ignore = new HashSet < > ( ) ; ignore . add ( 1 ) ; final CompositeMatch < Unit > blitzUnit = new CompositeMatchAnd < > ( Matches . unitIsOwnedBy ( ePlayer ) , Matches . UnitCanBlitz , Matches . UnitCanMove ) ; final CompositeMatch < Territory > validBlitzRoute = new CompositeMatchAnd < > ( Matches . territoryHasNoEnemyUnits ( ePlayer , data ) , Matches . TerritoryIsNotImpassableToLandUnits ( ePlayer , data ) ) ; final List < Route > routes = new ArrayList < > ( ) ; final List < Unit > blitzUnits = findAttackers ( blitzHere , 2 , ignore , ePlayer , data , blitzUnit , validBlitzRoute , blockTerr , routes , false ) ; for ( final Route r : routes ) { if ( r . numberOfSteps ( ) == 2 ) { blitzTerrRoutes . add ( r ) ; } } return strength ( blitzUnits , true , false , true ) ; }
determine the enemy potential for blitzing a territory - all enemies are combined
