add simplebot source code
This commit is contained in:
parent
b679103a4c
commit
b07276f3b3
1 changed files with 33 additions and 0 deletions
33
simplebot/simplebot.py
Normal file
33
simplebot/simplebot.py
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
import sys, json
|
||||||
|
|
||||||
|
def move(command):
|
||||||
|
""" print a command record to stdout """
|
||||||
|
moves = []
|
||||||
|
if command is not None:
|
||||||
|
moves.append(command)
|
||||||
|
|
||||||
|
print(json.dumps({ 'moves': moves }))
|
||||||
|
# flush the buffer, so that the gameserver can receive the json-encoded line.
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
state = json.loads(line)
|
||||||
|
# you are always player 1.
|
||||||
|
my_planets = [p for p in state['planets'] if p['owner'] == 1]
|
||||||
|
other_planets = [p for p in state['planets'] if p['owner'] != 1]
|
||||||
|
|
||||||
|
if not my_planets or not other_planets:
|
||||||
|
# we don't own any planets, so we can't make any moves.
|
||||||
|
move(None)
|
||||||
|
else:
|
||||||
|
# find my planet that has the most ships
|
||||||
|
planet = max(my_planets, key=lambda p: p['ship_count'])
|
||||||
|
# find enemy planet that has the least ships
|
||||||
|
destination = min(other_planets, key=lambda p: p['ship_count'])
|
||||||
|
# attack!
|
||||||
|
move({
|
||||||
|
'origin': planet['name'],
|
||||||
|
'destination': destination['name'],
|
||||||
|
'ship_count': planet['ship_count'] - 1
|
||||||
|
})
|
Loading…
Reference in a new issue