projects
/
erdslangetjie.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Strip newlines off map when loading
[erdslangetjie.git]
/
erdslangetjie
/
level.py
diff --git
a/erdslangetjie/level.py
b/erdslangetjie/level.py
index a2c2a2dadc1b8044676574d8c60d9134e84b6b5a..790557179a7ba5fb6d11361887396fbad8b4896f 100644
(file)
--- a/
erdslangetjie/level.py
+++ b/
erdslangetjie/level.py
@@
-7,16
+7,21
@@
class Level(object):
def __init__(self):
self.data = []
def __init__(self):
self.data = []
+ self.exit_pos = []
+ self.enter_pos = None
+ self.tiles = []
def load(self, levelfile):
"""Load the level"""
self.data = []
for line in levelfile.readlines():
def load(self, levelfile):
"""Load the level"""
self.data = []
for line in levelfile.readlines():
- self.data.append(list(line))
+ self.data.append(list(line
.strip('\n')
))
- def get_tiles(self):
- """Return a list of tiles for the level"""
- tiles = []
+ def load_tiles(self):
+ """Load the list of tiles for the level"""
+ self.tiles = []
+ self.exit_pos = []
+ self.enter_pos = None
for j, line in enumerate(self.data):
tile_line = []
for i, c in enumerate(line):
for j, line in enumerate(self.data):
tile_line = []
for i, c in enumerate(line):
@@
-25,6
+30,17
@@
class Level(object):
elif c == '.':
tile_line.append(load_image('tiles/wall.bmp'))
elif c == 'E' or c == 'X':
elif c == '.':
tile_line.append(load_image('tiles/wall.bmp'))
elif c == 'E' or c == 'X':
+ if c == 'E':
+ if self.enter_pos:
+ raise RuntimeError('Multiple entry points')
+ self.enter_pos = (i, j)
+ else:
+ self.exit_pos.append((i, j))
tile_line.append(load_image('tiles/door.bmp'))
tile_line.append(load_image('tiles/door.bmp'))
- tiles.append(tile_line)
- return tiles
+ self.tiles.append(tile_line)
+
+ def get_tiles(self):
+ return self.tiles
+
+ def at_exit(self, pos):
+ return pos in self.exit_pos