Label: rooArt - 74321522022 • Format: 2x, CD Album, Limited Edition • Country: Australia • Genre: Electronic • Style: Downtempo, Trip Hop, Ambient
Due on Sunday, March 20th at PM. This is a team lab. You and your assigned lab partner s will complete this lab together. Make sure that you are familiar with the Partner Etiquette guidelines. You may discuss the concepts of this lab with other classmates, but you may not share your code with anyone other than course staff and your Just Like That - The Lab - Labyrinth partner s.
Do not look at solutions written by students other than your team. If your team needs help, please post on the Piazza forum or contact the instructor or ninjas. For this lab, you will write two data structures: a stack and a queue.
You will then write a program which uses these data structures to find a path through a maze. Like the last team lab, your repository URL will be git github. You can see a list of all of your repositories on the Swarthmore GitHub in the lower-right side of the main page; make sure to switch your view to the organization for this class to see them. This webpage will give hints on how to implement and test each of these features and show examples of execution.
You can use the lecture notes regarding both templated classes and array lists to complete this part of your assignment. Since you are implementing a form of ArrayListremember that it will be your responsibility to keep track of an array e.
You should make sure to test the CircularArrayList thoroughly. Note: this algorithm never adds things to the beginning of the list. You can also use a simpler algorithm like this:. These are just a few of the many tests that you should write. Remember: each test helps you build confidence that your implementation of CircularArrayList is correct.
In completing the stack and queue implementations, please remember: most of the work is already finished. Just make Bob Dylan - Like Marlon Brando your object has an appropriate CircularArrayList field that you can use to implement its methods.
Note that both Stack and Queue Just Like That - The Lab - Labyrinth subtypes of OrderedCollection. The implementation of the OrderedCollection methods should be very easy: you just make your object call one of its own methods to perform the operation. To give you an example of this and a starting pointpart of CircularArrayStack has been written for you.
Remember to test these data structures thoroughly so that you can rely on them when you write your labyrinth solver. When testing these data structures, make sure to examine the behavior that is specific to the data structure.
Instead, make sure that e. In this part of the lab, you will write a program which helps you to solve labyrinths. To solve them, you will use two strategies: a depth-first search and a breadth-first search. The OrderedCollection interface will make it possible to switch between these algorithms simply by changing which type of data structure stack or queue you create.
Each labyrinth is a rectangular grid. Each spaces in the grid is assumed to be connected to the orthogonally adjacent spaces left, right, up, and down but not the diagonally adjacent spaces. The starting point of every labyrinth is the upper left corner; the exit is in the bottom right.
The layout of a particular labyrinth will be stored in a text data file with the extension. We have already written the code which loads files in this format for you; this explanation is just for reference. A map file contains the following:.
We will represent a labyrinth as a two-dimensional grid of Position objects. Each Position object contains relevant information for one place in the labyrinth: the X,Y coordinates where 0,0 is in the upper-leftwhether that position is a wall, and some fields which will be used during the search to construct an appropriate path through the labyrinth.
The constructor of the Position class should take the X and Y coordinate values and initialize the other fields to suitable default values like NULL or false. This way, you can write e. A Labyrinth object represents our knowledge of a particular labyrinth; we can use this information to find a path through the labyrinth using various search strategies.
If no such path exists, the method should instead return NULL. You have been provided the declaration of the Labyrinth class; you merely need to implement each of the methods. The real magic of making the program work happens in these methods, culminating in the solve method which finds a path through the labyrinth.
At the end of the loop, you can determine whether you found a path by looking at the exit position; if that position has been visited, you just need to follow the previous position pointers backward from it until you reach the start to describe the path to take in backwards order. If the exit position has not been visited, then there is no possible path through the labyrinth.
The above algorithm works for both depth-first and breadth-first search, depending on which kind of OrderedCollection you use. Make sure to stop and test your code at this point! Using your Labyrinth class, you should be able to write some simple tests that find valid paths. As a result, your output may differ from the provided solutions depending on how you explore the labyrinth.
For instance, Just Like That - The Lab - Labyrinth possible output for the above map Slamnješka Polka - Ansambel Alojza Grnjaka In Vok. Kvartet Marles* - Večerni Zvon would be:. Solutions to the labyrinth are given in the.
Your program is required to run without any memory leaks or errors; you must free up all of the memory that you allocate and you must only use memory that you have allocated and initialized. We will use valgrind to determine if you have done this correctly, so you should as well. You should use correct and consistent indentation. This helps you avoid subtle or messy bugs in the future. Any new methods or fields in your header files should have comments explaining their purpose and behavior.
As this is a team assignment, you are required to complete a peer review of your lab partner or partners. You must do this even if everything is fine. You should complete this Hangin On My Hip - Lou Gramm - Long Hard Look review after you have turned in your assignment. The peer review comes in the form of a simple Google Form and can be accessed here ; in most cases, it will likely take less than a minute to complete.
If you have trouble accessing this peer review, please make sure that you are logged into Google using your Swarthmore credentials. Your peer review will be kept private; only course staff will have access to this information.
You can also update your peer Just Like That - The Lab - Labyrinth after you have submitted it. However, if you do not submit a peer review, you will lose points on your lab. Overview For this lab, you will write two data structures: a stack and a queue. Tasks in This Lab. Source: OpenClipArt.
Depeche Mode - Love In Itself ∙ 2∙3 And Live Tracks, Emotion Rescue - S-H-M - Grün ist die Hoffnung, Everybody Get Together - Various - The Big Horn: The History Of Honkin & Screamin Saxophone, Le Plancher Des Vaches - Elizabeth* Et Roland* - Branches Pourries !, Still Half My Friend? - Zita Swoon - I Paint Pictures On A Wedding Dress