let buttons in the maze control internal doors, closing or opening them. this is a maze with state.
straightforward: only 1 button reachable initially. pushing it opens a (probably distant) door making the next button accessible, and so forth. pushing a "used" button again has no effect. the last button opens a door making the exit accessible. design the locations of the buttons so that one necessarily visits a large portion of the maze.
variations:
all buttons always accessible. maze is always solvable no matter what the button state. implement this by having the combined button state be the seed for a random (solvable) maze generator: pushing any button (probably) radically changes the maze. perhaps goal is shortest solution. or shortest solution that turns on all buttons.
a way to generate that doesn't radically change the maze for each button press: partially generate the maze with a fixed PRNG, then finish it off with a new PRNG seeded by button state. how well this works depends heavily on the chosen maze-generating algorithm. "doesn't radically change the maze" is subjective.
count the number of "on" buttons. let this number be the seed for the maze generator. it feels a little bit like a 3D maze with weird elevators: an elevator only goes one direction and a distance of one floor no matter what floor, but after being used, only goes the other direction. maybe a weird stairwell or ladder.
partition the buttons into two sets (perhaps visually). the tuple of the count of on buttons for each set is the seed for a maze generator. one wanders a "meta" plane of mazes. perhaps this meta plane is itself a maze with obstacles, so sometimes buttons cannot be pushed even if you reach them.
buttons are not optional. being in a cell with a button automatically pushes or unpushes it. it's more like a motion sensor than a button. or, movement between two adjacent cells triggers the change in doors of the maze. or, movement in a particular direction. all of these result in mazes in which you can't easily go backward, though a UI could provide undo.
pushing a button flips the state (xor) of a set of doors associated with the button.
some of these will require effort to ensure that the maze is solvable.
No comments :
Post a Comment