package planetwars; import java.util.Objects; import com.google.gson.JsonObject; /** * Stelt een planeet voor. */ public record Planet( Integer owner, // 1 -> jouw planeet, null -> van niemand, anders -> van tegenstander int shipCount, // Aantal schepen die de planeet bezit String name, // Naam float x, // x positie float y // y positie ) { /** * Maakt een planeet aan op basis van de input van het spel. * * @param planet | De input. */ public Planet(JsonObject planet) { this ( planet.get("owner").isJsonNull() ? null : planet.get("owner").getAsInt(), planet.get("ship_count").getAsInt(), planet.get("name").getAsString(), planet.get("x").getAsFloat(), planet.get("y").getAsFloat() ); } /** * Geeft terug hoe veel beurten schepen er over doen om van de ene planeet naar * de andere te gaan. * * @param otherPlanet | De andere planeet. * * @return | Aantal beurten. */ public int distance_between(Planet otherPlanet) { return (int) Math.ceil(Math.sqrt(Math.pow(otherPlanet.x - this.x, 2) + Math.pow(otherPlanet.y - this.y, 2))); } /** * Functie om 2 planeten te vergelijken. * * @param other | De andere planeet. * * @return | Boolean of de 2 gelijk zijn. */ @Override public boolean equals(Object other) { return Objects.equals(this.name, ((Planet) other).name()); } }