# Read Me for Maze Challenge Project
## Team: Group 9 - Invalid Pointer
Members: Samiha Datta, Mer Anderson, Sabrina Jain
GitHub usernames: samihadatta, meranderson, sabrinajain747
Date: March 9th, 2020
### Overview
The goal of the maze challenge project is to implement a maze solving method where multiple avatars drop into an unknown maze. The objective is for the avatars to traverse the maze and find each other to beat the challenge.
See `DESIGN.md` for more information.
## Functional Decomposition into Modules
* `AMstartup` (connects with maze server, gets maze port, creates log file and starts avatar threads)
* `libmaze` library (holds all data structures created specifically for the maze challenge)
* `avatar` (represents an avatar moving through maze)
* `avatar_info` (the information passed to each `avatar` thread)
* `message` (handles the reading and writing of messages to and from the server)
* `pointlib` (useful functions related to the `XYPos` structure)
* `coordinate` (doubly-linked list node)
* `discovered` (doubly-linked list manipulator)
* `move_algorithm` (methods that determine the optimal next move for each avatar)
* `output` library (holds anything used to create user-friendly output)
* `graphics` (graphical user interface methods)
* `logfile` (used for printing to console and logfile)
* `given` library (holds data structures that were not explicitly created for the project)
* `hashtable` (hashtable data structure)
* `hash function` (some module that provides a hash function for the hashtable)
* `set` (set data structure)
See `AMstartup/README.md`, `libmaze/README.md`, `output/README.md`, and `given/README.md` for more information.
### Compilation
To build, run `make`.
To clean up, run `make clean`.