From 9c252a2bbc135a8d97cf23a4970478640ac5870e Mon Sep 17 00:00:00 2001 From: Charles Peyrat Date: Fri, 8 Jan 2021 06:54:01 +0100 Subject: [PATCH] Correct out of bounds errors and add missing arguments to range call --- squirrelbattle/mapgeneration/broguelike.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/squirrelbattle/mapgeneration/broguelike.py b/squirrelbattle/mapgeneration/broguelike.py index 72f773c..d6da979 100644 --- a/squirrelbattle/mapgeneration/broguelike.py +++ b/squirrelbattle/mapgeneration/broguelike.py @@ -29,15 +29,17 @@ class Generator: @staticmethod def room_fits(level, y, x, room, door_y, door_x, dy, dx): - if level[y][x] != Tile.EMPTY or level[y-dy][x-dx] != Tile.FLOOR: - return False lh, lw = len(level), len(level[0]) rh, rw = len(room), len(room[0]) + if not(0 < y+dy < lh and 0 < x+dx < lw): + return False + if level[y][x] != Tile.EMPTY or level[y+dy][x+dx] != Tile.FLOOR: + return False for ry in range(rh): for rx in range(rw): if room[ry][rx] == Tile.FLOOR: ly, lx = y + ry - door_y, x + rx - door_x - if not(0 <= ly <= rh and 0 <= lx <= rw) or \ + if not(0 <= ly < lh and 0 <= lx < lw) or \ level[ly][lx] == Tile.FLOOR: return False return True