So. I think I have written this well, if not a little over-complicated. Everything seems to be working as it should but I still run into a fire-trap. Below is my code; any help would be appreciated…

```
# The raven will tell you what to use for your maze parameters!
slide = 9
switch = 5
skip = 7
# How many sideSteps north of the Red X you've taken.
sideSteps = 1
# How many steps east of the Red X you've taken.
steps = 1
# Multiply this with steps to determine your X coordinate. DON'T CHANGE THIS!
X_PACE_LENGTH = 4
# Multiply this with sideSteps to determine your Y coordinate. DON'T CHANGE THIS!
Y_PACE_LENGTH = 6
switchLoop = 1
loopCounter = 0
# The maze is 35 steps along the X axis.
while steps <= 35:
# Take the next step:
while True:
self.say(steps)
if switchLoop % 2 == 1:
steps += 1
sideSteps += 1
hero.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH)
loopCounter += 1
if loopCounter == 4:
switchLoop += 1
break
else:
steps += 1
sideSteps -= 1
hero.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH)
loopCounter += 1
if loopCounter == 4:
switchLoop += 1
break
if steps % switch == 0:
if switchLoop % 2 == 1:
steps += 1
sideSteps -= 1
hero.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH)
loopCounter += 1
if loopCounter == 4:
switchLoop += 1
self.say(switchLoop)
break
elif switchLoop % 2 == 0:
steps += 1
sideSteps += 1
hero.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH)
loopCounter += 1
if loopCounter == 4:
switchLoop += 1
self.say(switchLoop)
break
elif steps % skip == 0:
hero.say("skip")
steps += 1
sideSteps += 1
hero.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH)
elif steps % slide == 0:
hero.say("slide")
while True:
if sideSteps > 1:
steps += 0
sideSteps -= 1
hero.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH)
else:
break
```