Checklist
- [x] Finish the C# section → decided I don't have the expertise for this.
- [x] Clarify the differences between reached and open/closed
- [x] Show visual instead of ascii diagram. The code can continue outputting ascii but I could format it on the js side. Or I could have the code output an array of directions, and then have both an ascii and graphical visualizer.
- [x] Tie breaking: show my hack, and alternate hacks. For BFS use alternating direction lists.
- [x] Tie breaking: try weight variants for Dijkstra and A*. Only publish it if it works.
- [x] Add type annotations for Python — see cheatsheet