SETTINGS
Appearance
Language
About

Settings

Select a category to the left.

Appearance

Theme

Light or dark? Choose how the site looks to you by clicking an image below.

Light Dark

Language

Preferred Language

All content on utk.claranguyen.me is originally in UK English. However, if content exists in your preferred language, it will display as that instead. Feel free to choose that below. This will require a page refresh to take effect.

About

"utk.claranguyen.me" details

Domain Name: claranguyen.me
Site Version: 3.0.1
Last Updated: 2019/08/18
Getting Started

Synopsis

  • Read the lab writeup on Instructure Canvas.
  • There are four parts to this lab: Makefile, Mazemake, Mazesolve, Mazeimage. For COSC 302 students, Mazeimage is optional and may be submitted for extra credit. For COSC 307 students, all parts are required for full credit.

Side files

I have created a few extra files specifically for this lab assignment. They may help you, or they may not.
  • array_memory.h - Helper header file for allocating and freeing 2D and 3D generic-typed arrays in C.
  • mazemake_tips.pdf - Sketch of Mazemake, how to approach it, and how to visualise the wall[N][2] variable used.
  • mazesolve_tips.pdf - LaTeX document on how to think about DFS theoretically and practically. Features pseudocode for an ideal recursive and iterative implementation.
You can grab all of these here: http://file.claranguyen.me/index.php?path=/utk/cs302/fa19/lab6
Simulator: Mazesolve/Mazeshow
The following simulator was written specifically for this assignment to demonstrate how Mazesolve's DFS method should work. You are able to view the path in 2 ways... instantly, or procedurally. "Procedurally" will show each step of DFS to give you an idea of how to traverse the graph recursively.

Along with that, since it's a visual simulation, it also shows what Mazeshow should show. You are also able to download mazes and paths generated by it, and they are compatible with the solution executables. These options don't need explaining, though the "seed" is exclusive to this simulator. For your program, do srand(time(NULL)); when making your mazes. Have at it.

Simulator Configuration
Width:
Height:
Seed:
Interval:

View Options
Arrows:
Highlight:

Actions
Solve:
Download:

Notice some restrictions? Both width and height have a minimum of 2 and a maximum of 20. This is mainly so this webpage wouldn't get its layout messed up. If you want to experience the full simulator without restrictions, click here.
Submission
We will be following these guidelines.

Submission
  • makefile
  • Mazemake.cpp
  • Mazesolve.cpp
  • Mazeimage.cpp