Exemplo n.º 1
0
  public boolean arrival() {
    List<Fleet> fleets = new ArrayList<>();
    boolean arrival = false;

    if (Fleets().size() == 0) {
      return true;
    }

    for (Fleet fleet : Fleets()) {
      if (fleet.TurnsRemaining() == 0) {
        arrival = true;
        fleets.add(fleet);
      }
    }
    fleets.forEach(
        fleet -> {
          Planet dest = GetPlanet(fleet.DestinationPlanet());
          if (fleet.Owner() != dest.Owner()) {
            dest.NumShips(dest.NumShips() - fleet.NumShips());
            if (dest.NumShips() < 0) {
              dest.Owner(fleet.Owner());
              dest.NumShips(Math.abs(dest.NumShips()));
            }

          } else {
            dest.NumShips(dest.NumShips() + fleet.NumShips());
          }
        });
    return arrival;
  }