The Maze Challenge

You’re on a Caribbean Island vacation with some of your friends. It’s all sunshine and fruit drinks, when a mysterious fellow walks up to you on the beach. He offers each of you a week’s stay at the finest resort on the island if you and your friends can solve the resort’s garden maze challenge. After a brief consultation, you and your friends agree. There are some rules, the fellow says, but you all agree anyway and follow him to the resort.

He tells you that you will all be led into the maze while blindfolded. He goes on to say that some time later he will return, and if you and your friends are all together, you will win the challenge. Once you’re blindfolded and led into the maze, he instructs you and your friends to listen for a bell to ring three times at which point each of you may remove the blindfold. Each of you are then blindfolded and led into the maze. You all assume you’re together, but when the blindfolds are removed, you realize that while you are indeed in the maze, you are no longer with your friends - you can see no one. The walls of the maze are too high to see over, and they are too thick with thorns to see through or to climb over. You decide that the best course of action is to go through the maze looking for your friends. You quickly realize that you can call out to them and they can hear you and respond with hints as to where they are. Remembering that you and your friends have a limited amount of time to get back together before the man returns, you dash off through the maze to find them.

Maze example

The goal of this project is for each team to design, implement, and test a client application that simulates you and your friends searching for each other in a maze that is generated and managed by a separate server application. Each person in the maze will be represented by an Avatar.

The maze is rectangular, and is a “perfect” maze. A perfect maze is defined as a maze which has one and only one path from any point in the maze to any other point. This means that the maze has no inaccessible sections, no circular paths, and no open areas.

Team members will need to collaborate on the design of the client application. How you divide up the work is up to you. The teams will need to produce a design document, code the client, perform unit and subsystem testing of the client components, and full testing of their client with the server provided by the instructors. Depending upon the success of your simulation of the Avatars finding each other in the maze, you may have to refine your client application’s search heuristics a few times.

Once the client is working properly with the server for small, simple mazes, the teams will run their client on increasingly difficult mazes.

For the detailed requirement, please see the Maze Challenge.

Meet Our Teams!

Team Name Members Shepherds
SudoRMRF Adam Rinehouse, Alexander Newman, Dat Vo, and Ricardo Taboada Bob, Vasanta
Bashful Brigade Emma Hobday, Christina Lu, Arun Hari Anand, and Bill Tang Bob, Sagar
Team Grant Maxwell Coleman, Grant Cook, Grant Barker, Luke Hudspeth, and Patrick Matlin Redondo Bob, Sagar
Best cs50 group Weiling Huang, Hailey Nicholson, Shiyao Peng, and Mena David Afnan, Emily
Core Dump Abby Starr, Angela Liu, Andrew Liu, and Linford Zirangwa Afnan, Caitlyn
Jerry? Joshua Wende, Thomas Young, Andrew Alini, and Kevin Tan Afnan, Alex
Lone Pine Azhar Hussain, Tianyu Li, Oliver McTammany, and Matthew Kersey Max, Elisabeth
Mongoose Ruoni Wang, Lisa Oh, Hsuan-Chieh Huang, and Zhenyao Cai Max, David
The C-shells Jessica Teipel, Isabel Hurley, Tianhang Dong, and Madeleine McDermott Max, Alexander