18-642 Project 6

Page last updated 9/22/2019 (changelog)

This project gives you new maze files to solve. These files are not solvable by the left hand or right hand rule. The objective of this project is to lay ground-work for writing new requirements for your turtle, which you will implement as a state chart in future projects.


Lab Files:


Hints/Helpful Links:


Procedure:

  1. Run your turtle with the new maze files:
    1. Copy p06_mazes.tar.gz over to your virtual machine and extract the mazes into $ECE642RTLE_DIR.
    2. As in Project 5, you can run the turtle with the new mazes using the command ./build_run_turtle.sh [mazefile].
    3. For Project 6, you are required to solve m1.maze, m2.maze, and m3.maze. In future projects, you will be required to solve the other mazes.
  2. Come up with an algorithm so that turtle solves the new mazes.
  3. Write down requirements for this new algorithm. You will turn these requirements in as part of the checkpoint handin. These should be functional requirements from the software point of view (i.e., high level software requirements).They should not refer to internal state variables. As an example, requirements for the Project 2 left-hand rule could be:
  4. Implement your algorithm. Revise your requirements if you need to. Remember, you must solve mazes m1, m2, and m3 for Project 6. The other mazes are optional for this project, but you must attempt them. This will give you a feel for how much work will be required when you need to solve these and other similar mazes in future projects.
  5. Answer the following questions in a writeup:

Handin checklist:

  1. Your $ECE642RTLE_DIR directory, compressed and named p06_ece642rtle_[AndrewID]_[FamilyName]_[GivenName].zip (.tar.gz is also accepted).
  2. Your writeup, named p06_writeup_[AndrewID]_[FamilyName]_[GivenName].pdf.

Zip the two files and submit them as Project6_[Andrew ID]_[Family name]_[First name].zip. Yes, this means you'll have a zip file inside another zip file.
The rubric for the project is found here.


Changelog: