projects
/
erdslangetjie.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make AI destory gates
[erdslangetjie.git]
/
erdslangetjie
/
level.py
diff --git
a/erdslangetjie/level.py
b/erdslangetjie/level.py
index fc23cc626238bb965d69eea370098cffad96293f..092ef7bb874840420d44854a438ea8725ae76676 100644
(file)
--- a/
erdslangetjie/level.py
+++ b/
erdslangetjie/level.py
@@
-229,7
+229,7
@@
class Level(object):
return True
if tile == GATE:
print tile, pos, self._gates[pos]
return True
if tile == GATE:
print tile, pos, self._gates[pos]
- if self._gates[pos]
!= -1
:
+ if self._gates[pos]
> 0
:
return True
return False
return True
return False
@@
-237,11
+237,20
@@
class Level(object):
return abs(pos1[0] - pos2[0]) + abs(pos1[1] - pos2[1])
def is_gate(self, pos):
return abs(pos1[0] - pos2[0]) + abs(pos1[1] - pos2[1])
def is_gate(self, pos):
+ if not self._in_limits(pos):
+ return False
return self._data[pos[1]][pos[0]] == GATE
def is_button(self, pos):
return self._data[pos[1]][pos[0]] == GATE
def is_button(self, pos):
+ if not self._in_limits(pos):
+ return False
return self._data[pos[1]][pos[0]] == BUTTON
return self._data[pos[1]][pos[0]] == BUTTON
+ def is_wall(self, pos):
+ if not self._in_limits(pos):
+ return True
+ return self._data[pos[1]][pos[0]] == WALL
+
def trigger_button(self, pos):
if not self.is_button(pos):
return False
def trigger_button(self, pos):
if not self.is_button(pos):
return False
@@
-256,20
+265,18
@@
class Level(object):
gate_pos = cand
mindist = dist
if gate_pos:
gate_pos = cand
mindist = dist
if gate_pos:
- self._buttons[pos] =
=
'pressed'
+ self._buttons[pos] = 'pressed'
self._gates[gate_pos] = 3 # Raise gate
self._fix_tile(pos)
self._fix_tile(gate_pos)
def damage_gate(self, pos):
if not self.is_gate(pos):
self._gates[gate_pos] = 3 # Raise gate
self._fix_tile(pos)
self._fix_tile(gate_pos)
def damage_gate(self, pos):
if not self.is_gate(pos):
- return
False
+ return
if self._gates[pos] == -1 or self._gates[pos] == 0:
if self._gates[pos] == -1 or self._gates[pos] == 0:
- return
False
+ return
self._gates[pos] = self._gates[pos] - 1
self._gates[pos] = self._gates[pos] - 1
- self._fix_gate_tile(pos)
- self._changed.append((pos, self.get_single_tile(pos)))
- return True
+ self._fix_tile(pos)
def get_changed_tiles(self):
ret = self._changed[:]
def get_changed_tiles(self):
ret = self._changed[:]