Introduction For this task, we will build on some of the things from the previous task and use them to read a maze in fr

Business, Finance, Economics, Accounting, Operations Management, Computer Science, Electrical Engineering, Mechanical Engineering, Civil Engineering, Chemical Engineering, Algebra, Precalculus, Statistics and Probabilty, Advanced Math, Physics, Chemistry, Biology, Nursing, Psychology, Certifications, Tests, Prep, and more.
Post Reply
answerhappygod
Site Admin
Posts: 899604
Joined: Mon Aug 02, 2021 8:13 am

Introduction For this task, we will build on some of the things from the previous task and use them to read a maze in fr

Post by answerhappygod »

Introduction
For this task, we will build on some of the things from the
previous task and use them to read a maze in from a file. This time
the task will be completed in Python. To complete this task you
will need to create simple versions of the Location and GameMap
classes from the previous task. To be clear about the (small)
distinction, they will be call Position and Maze. You will also
need to create a function called read_maze which will be the main
unit tested.
There is also a __main__ section in which you can write your own
testing code, but this is not assessed.
Position
You will need to complete the class Position. This class will
not be directly tested, and you may implement it in any manner you
see fit as long as it has the following two methods:
has_direction which is an instance method and takes a str as a
parameter. It should return True if the Position has a path in the
direction indicated by the parameter and False if it doesn't.
is_exit which is an instance method and takes no other
parameters. It should return True if the Position is an exit and
False otherwise. A Position is an exit if it is on the edge of the
map and there is a path leading off that edge. This should be
determined at the point the Position is created and stored, rather
than attempting to compute it when the method is called.
The class also comes with a list called symbols that contains
the symbols the input will be expressed in. A line leading to an
edge indicates a path in that direction, where "north" is up.
Maze
You will also need to complete the class Maze. As with Position
this class will not be directly tested, and you are free to
implement the class as you see fit as long as it has the following
methods:
get_position which is an instance method that takes two
additional parameters that are numbers representing coordinates in
the maze. The coordinates are in the order row then column and (0,
0) is the top left. The method should return the Position at those
coordinates in the Maze, if such a Position exists and None
otherwise.
get_height which is an instance method that returns the "height"
of the maze (the number of rows).
get_width which is an instance method that returns the "width"
of the maze (the number of columns).
read_maze
The read_maze function is the core function of the task. It is
not associated with a class, and takes a single parameter which
will be a str containing the filename to be read.
The filename will contain a rectangular maze. Each line in the
file is a row in the maze, and is terminated by \n. A line may
include whitespace, so be cautious about aggressively stripping
whitespace from lines (looking up the documentation for the strip()
function may be informative, but it is not the only way to deal
with this problem). Each line will have the same length, which is
the number of columns.
Each individual symbol represents a position. If the symbol has
a line leading to an edge, there is a path in that direction, where
"north" is up. A position is an exit if it is at the edge of the
maze and there is a path to the edge.
The read_maze function should read this information in from the
file, and construct a Maze and suitable Positions that correctly
represent the input, and return this Maze.
Introduction For This Task We Will Build On Some Of The Things From The Previous Task And Use Them To Read A Maze In Fr 1
Introduction For This Task We Will Build On Some Of The Things From The Previous Task And Use Them To Read A Maze In Fr 1 (69.89 KiB) Viewed 57 times
Introduction For This Task We Will Build On Some Of The Things From The Previous Task And Use Them To Read A Maze In Fr 2
Introduction For This Task We Will Build On Some Of The Things From The Previous Task And Use Them To Read A Maze In Fr 2 (23.08 KiB) Viewed 57 times
import sys
class Position:
symbols = [" ", "╴", "╷", "┐", "╶", "─", "┌", "┬", "╵", "┘", "│",
"┤",
"└", "┴", "├", "┼"]
def has_direction(self, direction):
return False
def is_exit(self):
return False
class Maze:
def get_position(self, x, y):
return None
def get_height(self):
return 0
def get_width(self):
return 0
def read_maze(filename):
return None
if __name__ == "__main__":
#You can do whatever you want here.
pass
11 ",", "", "", "J", "|", "", 3 9 + maze_reader.py 1 import sys 2 3 4 class Position: 5 symbols = ["", "_", !!! 6 L", "I", "I", "1"] 7 def has_direction(self, direction): 9 return false 10 11 def is_exit(self): 12 return false 13 8 14 15 class Maze: 16 17 def get_position(self, x, y): 18 return None 19 def get_height(self): return 0 & # A A A A A A 20 21 22 23 24 def get_width(self): return 0 25 26 27 def read_maze(filename): 28 return None /home/maze_reader.py Spaces: 4 (Auto)

27 def read_maze(filename): 28 return None 29 30 ☺ ☺ ~ 31 if - 11 32 _name__ '__main__": #You can do whatever you want here. pass 33
Join a community of subject matter experts. Register for FREE to view solutions, replies, and use search function. Request answer by replying!
Post Reply