1/25: Initialize Project Implement hardness and immutable cells Implement room generation 1/26: Implement corridor generation 1/27: Improve corridor generation to avoid parallel paths Add staircases 1/28: Ability for there to be up to 2 staircases of each type 1/30: Update hardness to match HW2 spec 2/5: Rewrite data structures and dungeon generation to make file i/o straightforward 2/6: Remove seed parameter; always use time seed now Add new parameters --save and --load Implement reading/writing dungeons to file Fix memory leaks Use uintX_t types instead unsigned int, short, char, etc. 2/7: Add error message if file not found 2/11: Implement basic binary heap specific to this application, based on the stack we created in class Implement Dijkstra's Algorithm Implement distance printing function 2/15: Re-implement Dijkstra based on Dr. Sheaffer's heap and example code Add player character and unreachable locations to distance map printing 2/18: Fix the issue where distances would be added to INT_MAX, causing overflow Print the distance maps and unreachable areas as they are displayed in the sample output file 2/23: Split up codebase into several seperate files to modularize the code Update makefile based on Dr. Sheaffer's make file to more generically compile the code Add a better framework for parsing command line arguments 2/26: Continue modularizing the code Add the discreet event simulator code Build the framework for adding characters Implement player character movement Implement monster generation Implement monster movement based on type 2/27: Fix memory leaks using valgrind Test the monster types and verify reasonable behaviour from each Add ascii art win/loss messages 3/8: Import ncurses library Convert dungeon I/O to ncurses Add player-controlled movement Add basic monsters screen 3/9: Make the monsters screen prettier Implement going up and down stairs Add status messages to the screen on certain events Remove obsolete command line flags 3/24: Convert all files to c++, fix resulting errors Add Fog of War Begin converting structs to classes and reorganizing code accordingly 3/25: Finish converting structs to classes Make a lot of appropriate functions class members instead Add Teleportation 3/27: Minor refactors, make better use of OOP 3/30: Create Monster Description class, parse simple fields 4/2: Parse the rest of the fields Add error handling for duplicate fields, missing fields Fix memory leaks and reference errors