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