import java.util.Random; import java.util.Scanner; import planetwars.Planet; import planetwars.PlanetWars; /********************************************** * ______ _ _______ _____ * |___ / | | | | ___ \_ _| * / / ___ _ _ ___ | | | | |_/ / | | * / / / _ \ | | / __| | |/\| | __/ | | * ./ /__| __/ |_| \__ \ \ /\ / | _| |_ * \_____/\___|\__,_|___/ \/ \/\_| \___/ * *********************************************/ /** * Voorbeeld implementatie van de klassen in planetwars.py * * * De bot die hier wordt gemaakt is een speelgoed voorbeeldje. * Hij werkt zeer simpel. * * Elke ronde stuurt hij al zijn schepen naar een op voorhand bepaalde planeet. * Die planeet wordt bepaald aan de hand van de volgende regel: * * Is er een neutrale planeet vrij: * -> Ja, pak een random neutrale planeet * -> Nee, Pak een random planeet van de tegenstander */ public class Example { public static void main(String[] args) { // Maak onze instance aan PlanetWars planetWars = new PlanetWars(); // Scanner om de lijnen van stdin te lezen die het spel geeft. Scanner scanner = new Scanner(System.in); // Wordt gebruikt om een willekeurige planeet te kiezen. Random random = new Random(); /** * Elke beurt wordt de data van de staat het spel op stdin gezet. * Je kan een nieuwe beurt dus herkennen indien er iets binnenkomt op stdin. * De volgende while loop gaat elke keer als er iets binnenkomt (dus een nieuwe beurt) * een paar acties ondernemen. */ while (scanner.hasNextLine()) { // Lees de lijn. String line = scanner.nextLine(); // Update de klasse. boolean parsed = planetWars.update(line); if (! parsed) { // Bij de huidige implementatie zou dit nooit het geval mogen zijn. // Indien dit wel het geval is ligt het aan de game en niet aan jouw eigen code! planetWars.log("Error: Game input wrongly formatted!"); continue; } // De planeet waar we alles gaan naar sturen. Planet chosenPlanet; if (! planetWars.neutralPlanets.isEmpty()) { // Als er neutrale planeten zijn pak dan een willekeurige neutrale planeet. int randomIndex = random.nextInt(planetWars.neutralPlanets.size()); // Genereer random index voor de neutrale planets array chosenPlanet = planetWars.neutralPlanets.get(randomIndex); } else { // Anders pak een willekeurige planeet van de tegenstander int randomIndex = random.nextInt(planetWars.enemyPlanets.size()); // Genereer random index voor de enemy planets array chosenPlanet = planetWars.enemyPlanets.get(randomIndex); } // Stuur al onze schepen naar de gekozen planeet for (Planet planet: planetWars.myPlanets) { planetWars.addMove(planet, chosenPlanet, planet.shipCount()); } // Verzend onze zetten planetWars.move(); // Einde van de beurt, wacht tot een nieuwe beurt begint en de cycle begint weer! } scanner.close(); } }