public boolean crossesWater(){
  final boolean startLand=!m_start.isWater();
  boolean overWater=false;
  final Iterator<Territory> routeIter=m_steps.iterator();
  Territory terr=null;
  while (routeIter.hasNext()) {
    terr=routeIter.next();
    if (terr.isWater()) {
      overWater=true;
    }
  }
  if (terr == null) {
    return false;
  }
  return (startLand && overWater && !terr.isWater());
}

public boolean crossesWater ( ) { final boolean startLand = ! m_start . isWater ( ) ; boolean overWater = false ; final Iterator < Territory > routeIter = m_steps . iterator ( ) ; Territory terr = null ; while ( routeIter . hasNext ( ) ) { terr = routeIter . next ( ) ; if ( terr . isWater ( ) ) { overWater = true ; } } if ( terr == null ) { return false ; } return ( startLand && overWater && ! terr . isWater ( ) ) ; }
determines if the route crosses water by checking if any of the territories except the start and end are sea territories .
