Create simple versions of the location and gamemap classes

Assignment Help Computer Engineering
Reference no: EM133186576

Task - Loading A Maze from a File

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.

THE CODE PROVIDED IN THE TASK: (PYTHON

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

Reference no: EM133186576

Questions Cloud

The coupon rate and required return on bond : Explain the difference between the coupon rate and the required return on a bond. What is the relationship between the price of a bond and its YTM?
Marginal product as workers at boeing : Explain whether workers at Airbus have the same marginal product as workers at Boeing?
What is importance of production function : What is the importance of the production function in determining how much input is required to produce a given output?
Making decisions regarding public expenditures : How will this analysis be used for making decisions regarding public expenditures?
Create simple versions of the location and gamemap classes : Create simple versions of the Location and GameMap classes from the previous task. To be clear about the (small) distinction
Find the first pair by testing a key : Find the first pair by testing a key for at most n - 1 locks. Then we remove this pair and repeat the process. How many trials does this algorithm require
Design a classifier that can identify : Design a classifier that can identify which of the two factories produced a given defective PPE. Let the components of the PPE be available and measurable
What are the final clusters : what are the final clusters and which is a better grouping in terms of within-cluster variance? Justify your answer
Estimate the i/o cost of the best possible solution : Consider a file of customer data that consists of 200,000 records, spread over 5000 disk blocks. There is a secondary index on the key attribut

Reviews

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd