Player.java
1 package hlt; 2 3 import java.util.LinkedHashMap; 4 import java.util.Map; 5 6 public class Player { 7 public final PlayerId id; 8 public final Shipyard shipyard; 9 public int halite; 10 public final Map<EntityId, Ship> ships = new LinkedHashMap<>(); 11 public final Map<EntityId, Dropoff> dropoffs = new LinkedHashMap<>(); 12 13 private Player(final PlayerId id, final Shipyard shipyard) { 14 this.id = id; 15 this.shipyard = shipyard; 16 } 17 18 void _update(final int numShips, final int numDropoffs, final int halite) { 19 this.halite = halite; 20 21 ships.clear(); 22 for (int i = 0; i < numShips; ++i) { 23 final Ship ship = Ship._generate(id); 24 ships.put(ship.id, ship); 25 } 26 27 dropoffs.clear(); 28 for (int i = 0; i < numDropoffs; ++i) { 29 final Dropoff dropoff = Dropoff._generate(id); 30 dropoffs.put(dropoff.id, dropoff); 31 } 32 } 33 34 static Player _generate() { 35 final Input input = Input.readInput(); 36 37 final PlayerId playerId = new PlayerId(input.getInt()); 38 final int shipyard_x = input.getInt(); 39 final int shipyard_y = input.getInt(); 40 41 return new Player(playerId, new Shipyard(playerId, new Position(shipyard_x, shipyard_y))); 42 } 43 }