summaryrefslogtreecommitdiff
path: root/manhattan.py
diff options
context:
space:
mode:
Diffstat (limited to 'manhattan.py')
-rw-r--r--manhattan.py61
1 files changed, 0 insertions, 61 deletions
diff --git a/manhattan.py b/manhattan.py
deleted file mode 100644
index f64b1e2..0000000
--- a/manhattan.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import random
-
-def distance(x1, y1, x2, y2):
- '''
- >>> distance(0, 0, 3, 0)
- 3
- >>> distance(1, 1, 3, 3)
- 4
- '''
- return abs(x1 - x2) + abs(y1 - y2)
-
-def direction_to(rx, ry, fx, fy):
- '''
- >>> direction_to(0, 0, 3, 0)
- 'R'
- >>> direction_to(0, 0, 0, 3)
- 'D'
- >>> direction_to(6, 0, 3, 0)
- 'L'
- >>> direction_to(0, 6, 0, 3)
- 'U'
- '''
- moves = []
- if fx < rx:
- moves.append('L')
- elif fx > rx:
- moves.append('R')
- if fy < ry:
- moves.append('U')
- elif fy > ry:
- moves.append('D')
- return random.choice(moves)
-
-def closest_factory(whoami, state, rx, ry):
- closest_factory = None
- closest_distance = 9999999
-
- for fx, fy in state.factories:
- if state.allegiances.get((fx, fy)) != whoami:
- d = distance(rx, ry, fx, fy)
- if d < closest_distance:
- closest_factory = (fx, fy)
- closest_distance = d
-
- return closest_distance, closest_factory
-
-def manhattan(whoami, state):
- orders = []
-
- for rx, ry, energy in state.robots_by_player[whoami]:
- distance, factory = closest_factory(whoami, state, rx, ry)
-
- if factory is None or random.random() < 0.1:
- orders.append(random.choice('UDLRP'))
- elif distance == 0:
- orders.append('P')
- else:
- fx, fy = factory
- orders.append(direction_to(rx, ry, fx, fy))
-
- return orders