+1 (315) 557-6473 

Python Program to Implement Maze Assignment Solution.


Instructions

Objective

To complete a Python assignment, you can write a program to implement a maze in Python. Creating a maze-solving algorithm can be a challenging and rewarding task. You'll need to design the maze structure, implement the necessary functions to navigate through it, and possibly employ search algorithms like depth-first search or breadth-first search to find a path from the start to the end of the maze. This assignment will not only test your programming skills but also your problem-solving abilities. Make sure to plan your approach, break down the problem into manageable steps, and test your code thoroughly to ensure it works correctly.

Requirements and Specifications

program to implement maze in python
program to implement maze in python 1

Source Code

import random

# define your Maze class here

class Maze:

def __init__(self, N=4, p=0.3, maze_style='basic'):

# Ensure that N is in [4,8]

if N < 4:

N = 4

elif N > 8:

N =8

self.N = N

# Ensure that P is in [0, 1)

if p < 0:

p = 0

elif p >= 1:

p = 0.5

if maze_style != 'basic' and maze_style != 'xspace':

maze_style = 'basic'

self.p = p

self.maze_style = maze_style

def gen_maze(self):

'''

Randomly generate an embedded list with N sublists, each of which has N integer elements with values either 0 or 1. For example, if N = 4, the generated list named maze could be

[[0, 0, 1, 0],

[1 0, 0, 1],

[0, 1, 0, 0],

[1 0, 0, 0]].

The starting point is at maze[0][0], and the end point is at maze[N-1][N-1].

'''

self.maze = [] # initialization the embedded list

# implement the gen function here (2 marks)

for i in range(self.N):

# Create a sublist of N elements with random 0 and 1

sublist = []

for j in range(self.N):

# Generate random number

x = random.random()

if x <= self.p:

x = 1

else:

x = 0

sublist.append(x)

# If the current index is zero, then set the elment (0,0) as 0

if i == 0:

sublist[0] = 0

elif i == self.N-1: # if the current index is N-1 then set the element (N,N) to 0

sublist[-1] = 0

self.maze.append(sublist)

def print_maze(self):

"""

Print the maze on the screen (standard output).

"""

print('maze style is: ' + self.maze_style)

# write your code below (2 marks)

if self.maze_style == 'basic':

print(self.maze)

elif self.maze_style == 'xspace':

for i in range(self.N):

row = self.maze[i]

for j in range(self.N):

if (i == 0 and j == 0) or (i == self.N-1 and j == self.N-1):

print('*', end = "")

else:

if self.maze[i][j] == 0:

print('O', end='')

else:

print('X', end='')

print()

print('Done!')

cout << "Enter number of hours: ";

cin >> hours;

if(hours > 0) {

break;

}

else {

cout << "Please enter a positive number of hours." << endl;

}

}

// Now, calculate

double monthly_cost;

double hour_cost;

double total_cost;

int max_hours;

if(package_name.compare("A") == 0 || package_name.compare("a") == 0) {

monthly_cost = 9.95;

hour_cost = 2.00;

max_hours = 10;

total_cost = monthly_cost;

// Calculate

if(hours > max_hours) {

total_cost = monthly_cost + (hours - max_hours)*hour_cost;

}

}

else if(package_name.compare("B") == 0 || package_name.compare("b") == 0) {

monthly_cost = 13.95;

hour_cost = 1.00;

max_hours = 20;

total_cost = monthly_cost;

// Calculate

if(hours > 120) {

total_cost = monthly_cost + (hours - max_hours)*hour_cost;

}

}

else // it is package C

{

monthly_cost = 19.95;

hour_cost = 0.00;

total_cost = monthly_cost;

}

// Finally, display

cout << "Your total bill for this month is: $" << total_cost << endl;

}