From a1e05a19fd8ca16217446cf5ea218ee070141a29 Mon Sep 17 00:00:00 2001 From: Niels Serup Date: Fri, 10 Aug 2012 12:42:36 +0200 Subject: [PATCH] Fixed lasermirror room bug where levers are unaccessible. --- robotgame/logic/lasermirror.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/robotgame/logic/lasermirror.py b/robotgame/logic/lasermirror.py index 169c264..3c59c8c 100644 --- a/robotgame/logic/lasermirror.py +++ b/robotgame/logic/lasermirror.py @@ -82,12 +82,13 @@ def generate_simple_playfield(nmirrors): succs = (lambda s: lambda d: succ(s(d)))(succs) source_direc = succ(source_direc) + occup = set(playfield.keys()) emptys = list( - set([(0, y) for y in range(12)] - + [(11, y) for y in range(12)] - + [(x, 0) for x in range(12)] - + [(x, 11) for x in range(12)]) - - set(playfield.keys())) + set([(0, y) for y in filter(lambda y: (1, y) not in occup, range(12))] + + [(11, y) for y in filter(lambda y: (10, y) not in occup, range(12))] + + [(x, 0) for x in filter(lambda x: (x, 1) not in occup, range(12))] + + [(x, 11) for x in filter(lambda x: (x, 10) not in occup, range(12))]) + - occup) if len(emptys) < nlevers: raise Exception("Not enough space for all levers!") for pos in misc.pick_random_elements(emptys, nlevers):