planetwars.dev/examples/java/planetwars/Planet.java
2023-11-20 16:34:47 +01:00

58 lines
1.6 KiB
Java

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());
}
}