diff options
author | Ilion Beyst <ilion.beyst@gmail.com> | 2022-03-13 15:20:03 +0100 |
---|---|---|
committer | Ilion Beyst <ilion.beyst@gmail.com> | 2022-03-13 15:20:03 +0100 |
commit | fd52e266c6e25999a49c36f17342977b759a2612 (patch) | |
tree | 9c727cac949c9698343d003ee87cfe73c6c6204a /planetwars-matchrunner/bots/simplebot/simplebot.py | |
parent | f7655005ff099e8314ecd31e95b26ad74d4efd02 (diff) | |
download | planetwars.dev-fd52e266c6e25999a49c36f17342977b759a2612.tar.xz planetwars.dev-fd52e266c6e25999a49c36f17342977b759a2612.zip |
apply clippy suggestions
Diffstat (limited to 'planetwars-matchrunner/bots/simplebot/simplebot.py')
-rw-r--r-- | planetwars-matchrunner/bots/simplebot/simplebot.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/planetwars-matchrunner/bots/simplebot/simplebot.py b/planetwars-matchrunner/bots/simplebot/simplebot.py new file mode 100644 index 0000000..b2a6b8f --- /dev/null +++ b/planetwars-matchrunner/bots/simplebot/simplebot.py @@ -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 + }) |