Chapter 5: Hallway Navigation
L to R BonkSpark, Briar Marrow, FrogBag, BlobBolt, BurpBlast, SneezeSpark
Today we'll work on hallway navigation. I'm going to help Moose out by supplying screenshots and giving some direction so that he doesn't have to discover navigation on his own.
I took 9 screenshots, showing what it looks like when there's a path forward, when there's a door on the right or left, etc. Uploaded the images and provided this prompt:
Here are a bunch of screenshots. Based on their names, and on the graphics (above the party list only), can you determine how the navigation works and PROPOSE changes to implement navigation logic? When the party enters, they should probably explore using the right-hand-rule, where they follow the right-hand wall. But they should favor unexplored paths (consult the map that the Campaign has been keeping), unless they are going after a specific objective that causes them to need to retrace steps. Example, if the entire first level is mapped, the party will need to retrace steps on level one so that they efficiently reach the staircase down to level two. Make sense?

Moose has replied with a solid architecture that includes keeping state of the maze that includes x,y,z coordinates as well as if there's a door, if a right-turn is possible, if the way forward is blocked, etc. I am watching America's Got Talent now as Moose writes the Python code.
Some of Moose's code is too conservative. Example, it wants to test every single wall to ensure it is truly a wall. This can lead to wasteful code that might not be necessary. We have compromised where I told it I want it to log every instance of an "ambiguous wall" and also to decorate this code with a "Revisit" tag, so that we can look at this again near the end of the project. There will be other "Revisit" tags and we'll review them all at the end.

We have now begun iterating where Moose starts exploring, failures hit, and I give him logs and screenshots and he debugs the logic. The 'log every instance of an ambiguous wall' really paid off because that condition was getting hit constantly, so Moose could tell there was a lot of error in that logic.