These are the files from Chapter 15, as augmented with validation code introduced in the "defensive programming" section of Chapter 19.

Chapter 19 Files
run_maze.py 🔷
mrp.py 🔷