Assignment Task:

1 Introduction

1.1 Summary
In this assignment you will implement a version of Trémaux’s algorithm for solving simple mazes. The algorithm in this assignment has a slight variation, so make sure you check the details here!

In this assignment you will:

  • Practice the programming skills covered throughout this course, such as:
  • Pointers
  • Dynamic Memory Management
  • Provided API
  • Correctly Implement a pre-defined API
  • Implement a medium size C++ program
  • Use a prescribed set of C++11/14 language features

3 Task
The task for this assignment is to write a full C++ program that:
1. Reads in a 20x20 maze from standard-input (std::cin).
2. Solves the maze (using the Simplified Trémaux Algorithm in Section 2.1).
3. Prints out the solution to the maze to standard output (std::cout).
4. (Optionally) prints out walking/navigation directions (that you could follow to walk through the maze).
For the purposes of this assignment (except for Milestone 4), you may assume that the maze is always a fixed size of 20x20.

3.1 Milestone 1: Writing Tests
Before starting out on implementation, it is good practice to write some tests, so that you can know if your
implementation is 100% correct. We are going to use I/O-blackbox testing. That is, we will give our program
a maze to solve (as Input), and then test that the program’s Output is what we expect it to be.
This a test consists of two text-files:
1. <testname>.maze - The input maze for the program to solve
2. <testname>.out - The expected output which is the solution to the maze.
A test passes if the output of your program matches the expected output.
You should write enough tests so that, if your program passes all of your tests pass, you are confident that your program is 100% correct.

3.2 Milestone 2: Maze Solving
Even for a relatively small algorithm, it is important to have the right design for our programs, and use
appropriate data structures and classes. To help you in Assignment 1, we done this design for you to implement1

We will implement 3 classes, plus a main file:
• Breadcrumb class - to represent a single breadcrumb in the trail.
• Trail class - to and update the trail of breadcrumbs as we explore the maze.
• MazeSolver class - to encapsulate the maze solving algorithm.
• The main file that uses these classes, and does any reading/writing to standard input/output.
You are given these classes as header files in the starter code. You may add any of your own code, but you must not modify the provided class methods and fields. If you implement the class, you will have a working Milestone

 

This Engineering Assignemnt has been solved by our Engineering Experts at UniLearnO. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.

Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.

Eureka! You've stumped our genius minds (for now)! This exciting new question has our experts buzzing with curiosity. We can't wait to craft a fresh solution just for you!

  • Uploaded By : Alex Cerry
  • Posted on : May 23rd, 2019

Whatsapp Tap to ChatGet instant assistance