@Test public void testNumberOfHomePlanets() throws InvalidMoveException { Player player1 = new Player("Player 1", GameColor.BLACK); Assert.assertEquals(Player.DEFAULT_NUMBER_OF_PLANETS, player1.numberOfHomePlanets()); List<Planet> homePlanets = player1.getHomePlanets(); for (Planet planet : homePlanets) { planet.removeShips(player1); } Assert.assertEquals(0, player1.numberOfHomePlanets()); }
Universe haveEveryPlanetAttack(Planet mine, Planets planetsToAttack) { List<Planet> newPlanets = new ArrayList<Planet>(); List<Fleet> additionalFleets = new ArrayList<Fleet>(); for (Planet p : planetsToAttack.minus(mine).items) { if (!p.isNeutral()) { newPlanets.add(p.removeShips(p.numShips)); additionalFleets.add(p.attack(mine)); } } return new Universe( planets.replace(new Planets(newPlanets)), fleets.union(new Fleets(additionalFleets)), turn, reservations); }
public Universe(Planets planets, Fleets fleets, int turn, Reservations reservations) { this.turn = turn; Fleets sentThisTurn = new Fleets(); for (Reservation reservation : reservations.items) { if (turn == reservation.turn) { Planet planet = planets.find(reservation.attack.homePlanet.id); if (planet.isMine() && planet.numShips >= reservation.attack.ships) { sentThisTurn = sentThisTurn.plus(new Fleet(reservation.attack)); planets = planets.remove(planet); planet = planet.removeShips(reservation.attack.ships); planets = planets.union(planet); } } } this.planets = planets; this.fleets = fleets.plus(sentThisTurn); this.reservations = reservations; }