X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=erdslangetjie%2Flevel.py;h=e4bc0e09a58072ea9c28dccdd2e4f8a790d9a6fb;hb=14a47bbc124c45098e35dbbc4cb09e55bebb8358;hp=4f8059e5383d65add9a62b436c0426874ecdcabe;hpb=cbd634a8dcd32935a8c3d0f70c07b9a52f9c4e17;p=erdslangetjie.git diff --git a/erdslangetjie/level.py b/erdslangetjie/level.py index 4f8059e..e4bc0e0 100644 --- a/erdslangetjie/level.py +++ b/erdslangetjie/level.py @@ -73,9 +73,9 @@ class Level(object): exit_points = 0 for line in self._data: if ENTRY in line: - entry_points += 1 + entry_points += line.count(ENTRY) if EXIT in line: - exit_points += 1 + exit_points += line.count(EXIT) if entry_points == 0: raise RuntimeError('No entry point') if entry_points > 1: @@ -179,7 +179,6 @@ class Level(object): self._data[pos[1]][pos[0]] except IndexError: return False - print pos, self._data[pos[1]][pos[0]] return True def blocked(self, pos): @@ -242,10 +241,16 @@ class LevelList(object): line = line.strip() if os.path.exists(filepath(line)): level_file = load(line) - self.levels.append(Level(level_file)) + level = Level(level_file) level_file.close() + try: + level.validate() + except RuntimeError as err: + raise RuntimeError( + 'Invalid level %s in level_list: %s' % (line, err)) + self.levels.append(level) else: - print 'Level list includes non-existant level %s' % line + raise RuntimeError('Level list includes non-existant level %s' % line) level_list.close() self._cur_level = 0