Objectives Java refresher (including file I/O) Use recursion Description For this project, you get to write a maze solver. A maze is a two dimensional array of chars. Walls are represented as '#'s and ' ' are empty squares. The maze entrance is always in the first row, second column (and will always be an empty square). There will be zero or more exits along the outside perimeter. To be considered an exit, it must be reachable from the entrance. The entrance is not an exit. Here are some example mazes: mazeA 7 9 # # ##### # # # # # # # ### # # # # ##### # # # ######### mazeB 7 12 # ########## # # # # # # # #### # # # # # # ##### ## # # # # ############ mazeC 3 5 # # # ## ##
Objectives
- Java refresher (including file I/O)
- Use recursion
Description
For this project, you get to write a maze solver. A maze is a two dimensional array of chars. Walls are represented as '#'s and ' ' are empty squares. The maze entrance is always in the first row, second column (and will always be an empty square). There will be zero or more exits along the outside perimeter. To be considered an exit, it must be reachable from the entrance. The entrance is not an exit.
Here are some example mazes:
mazeA
7 9
# # #####
# # # #
# # # ###
# # #
# ##### #
# #
#########
mazeB
7 12
# ##########
# # # #
# # # #### #
# # # #
# ##### ## #
# # #
############
mazeC
3 5
# # #
## ##
Requirements
Write a MazeSolver class in Java. This program needs to prompt the user for a maze filename and then explore the maze. Display how many exits were found and the positions (not indices) of the valid exits. Your program can display the valid exits found in any order. See the examples below for exact output requirements. Also, record a 5-8 minute video explaining the major portions of your code, including how you designed the recursion to explore the entire maze. Identify the base case. Include in the recording your program running. Also include any shortcomings or future work. Submit either the video or a link to the video (youtube.com, Google Drive, etc.) Furthermore, create a file named rubric-mazeSolver.txt that is a completed rubric (including the number of hours spent on the assignment).
Examples
Note, user input is in bold face blue and underlined text is required for test cases.
mazeA
Please enter the maze filename: project1-testA.txt
You entered project1-testA.txt
Found 1 exit at the following positions:
1,4
mazeB
Please enter the maze filename: project1-testB.txt
You entered project1-testB.txt
Unsolvable!
Notice that the term "Unsolvable" is required if there are no valid exits.
mazeC
Please enter the maze filename: project1-testC.txt
You entered project1-testC.txt
Found 4 exits at the following positions:
2,5
1,4
3,3
2,1
Notice that multiple valid exits were found. Remember, you can present the valid exits in any order.
Trending now
This is a popular solution!
Step by step
Solved in 6 steps with 2 images