diff --git a/python/SimpleRL.py b/python/SimpleRL.py index f9cde35..09f059b 100644 --- a/python/SimpleRL.py +++ b/python/SimpleRL.py @@ -25,6 +25,10 @@ } +class BlockedMovement(Exception): + pass + + class Game(object): def __init__(self, screen): self.screen = screen @@ -33,8 +37,9 @@ def __init__(self, screen): def move_player(self, (dx, dy)): x, y = self.x + dx, self.y + dy - if MAP[y][x] == ' ': - self.x, self.y = x, y + if MAP[y][x] != ' ': + raise BlockedMovement() + self.x, self.y = x, y def main(self): for row in MAP: @@ -48,9 +53,11 @@ def main(self): except KeyError: pass else: - self.draw_tile(' ') self.screen.addstr(self.y, self.x, ' ') - self.move_player(direction) + try: + self.move_player(direction) + except BlockedMovement: + pass if __name__ == '__main__':