summaryrefslogtreecommitdiff
path: root/example-bots/random_valid.py
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@zancanaro.id.au>2022-09-25 00:10:13 +1000
committerCarlo Zancanaro <carlo@zancanaro.id.au>2022-09-25 00:38:04 +1000
commit7daa5284f9eddf6d4b4e7838919e80ce25324bb0 (patch)
treeac92d9aa97621b4c314441a4cb7cdcab60b4f85e /example-bots/random_valid.py
parente031af6e5e8324fe4cda66d9597904040b17ca80 (diff)
Lots of changes!HEADmaster
Diffstat (limited to 'example-bots/random_valid.py')
-rw-r--r--example-bots/random_valid.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/example-bots/random_valid.py b/example-bots/random_valid.py
new file mode 100644
index 0000000..0a84b96
--- /dev/null
+++ b/example-bots/random_valid.py
@@ -0,0 +1,30 @@
+import random
+
+def calculate_orders(whoami, state):
+ orders = []
+
+ my_robots = state.robots_by_player[whoami]
+ for rx, ry, energy in my_robots:
+ if state[rx, ry].city == '+' and state[rx, ry].allegiance != whoami:
+ orders.append('P')
+ continue
+ potential_orders = []
+ if state[rx, ry].allegiance != whoami:
+ potential_orders.append('P')
+ if state[rx + 1, ry].city != 'X':
+ potential_orders.append('R')
+ if state[rx - 1, ry].city != 'X':
+ potential_orders.append('L')
+ if state[rx, ry + 1].city != 'X':
+ potential_orders.append('D')
+ if state[rx, ry - 1].city != 'X':
+ potential_orders.append('U')
+
+ if potential_orders:
+ # Make a random move for each robot
+ orders.append(random.choice(potential_orders))
+ else:
+ # There are no valid moves, so do nothing for this robot
+ orders.append('-')
+
+ return orders