Mazes
Generating and solving mazes.
Learning Goals
Implement nontrivial algorithms involving multiple ADTs and data structures.
Previous assignments involved developing data structures to fulfill the ADTs from lecture. In contrast, this assignment revolves around working as a client of those ADTs to implement complex algorithms.
Extending an existing codebase.
Also unlike previous assignments, this assignment focuses on a particular, runnable program—one with unfamiliar code that you’ll be seeing for the first time. This is very realistic experience, since in the real world, we usually don’t start developing projects completely from scratch. As a result, you should expect to spend a decent amount of time familiarizing yourself with the provided code so that you know how to interface with it and what your code needs to do.
Table of contents
Getting the Assignment
- Task
- Pull the skeleton repository in IntelliJ to get the
mazes
assignment.
Like previous projects, if IntelliJ doesn’t react to the new folder for whatever reason, refresh Gradle manually through the Gradle tool window (on the right by default):
Feedback Survey
After completing both the programming and experiment portions of the assignment, we’d appreciate if you take a couple minutes to complete the individual feedback survey on Canvas for extra credit. (Each partner needs to submit their own individual response.)
Table of contents
- Dijkstra’s Algorithm - Familiarize yourself with the main application, and implement maze solving.
- Kruskal’s Algorithm - Implement maze generation.