65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
|
import sys, random
|
||
|
|
||
|
from planetwars import PlanetWars, log
|
||
|
|
||
|
|
||
|
"""
|
||
|
============================================
|
||
|
______ _ _______ _____
|
||
|
|___ / | | | | ___ \_ _|
|
||
|
/ / ___ _ _ ___ | | | | |_/ / | |
|
||
|
/ / / _ \ | | / __| | |/\| | __/ | |
|
||
|
./ /__| __/ |_| \__ \ \ /\ / | _| |_
|
||
|
\_____/\___|\__,_|___/ \/ \/\_| \___/
|
||
|
|
||
|
============================================
|
||
|
|
||
|
|
||
|
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 regels:
|
||
|
1. Is er een neutrale planeet vrij
|
||
|
-> Ja, pak een random neutrale planeet
|
||
|
-> Nee, ga naar stap 2
|
||
|
2. Pak een random planeet van de tegenstander
|
||
|
"""
|
||
|
|
||
|
# Maak onze instance aan
|
||
|
planetwars = PlanetWars()
|
||
|
|
||
|
# Je kan een nieuwe beurt herkennen aan een nieuwe lijn die in stdin terecht komt.
|
||
|
# Dit gaat voor elke lijn (dus elke beurt) paar acties ondernemen.
|
||
|
for line in sys.stdin:
|
||
|
# Update onze klasse
|
||
|
parsed = planetwars.update(line)
|
||
|
if not 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!
|
||
|
log("Error: Game input wrongly formatted!")
|
||
|
continue
|
||
|
|
||
|
# De planeet waar we alles gaan naar sturen
|
||
|
chosen_planet = None
|
||
|
|
||
|
# Pak een random neutrale planeet
|
||
|
if len(planetwars.neutral_planets) != 0:
|
||
|
# Als er neutrale planeten zijn pak dan een willekeurige neutrale planeet.
|
||
|
chosen_planet = random.choice(planetwars.neutral_planets)
|
||
|
else:
|
||
|
# Anders pak een willekeurige planeet van de tegenstander
|
||
|
chosen_planet = random.choice(planetwars.enemy_planets)
|
||
|
|
||
|
# Stuur al onze schepen naar de gekozen planeet
|
||
|
for planet in planetwars.my_planets:
|
||
|
planetwars.add_move(planet, chosen_planet, planet.ship_count)
|
||
|
|
||
|
# Verzend onze zetten
|
||
|
planetwars.move()
|
||
|
|
||
|
# Einde van de beurt, wacht tot een nieuwe beurt begint en de cycle begint weer!
|