Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions Icon

Related questions

Question
from time import sleep
from os import system

 

class Node:
def__init__(self, data):
self.data=data
self.next=None

 

class Stack:
def__init__(self):
self.top=None

 

defpush(self, data):
new_node=Node(data)
ifself.topisNone:
self.top=new_node
else:
new_node.next=self.top
self.top=new_node

 

defpop(self):
ifself.topisNone:
returnNone
data=self.top.data
self.top=self.top.next
returndata

 

def dfs(maze, start, end):
rows=len(maze)
cols=len(maze[0])
visited= [[Nonefor_inrange(cols)] for_inrange(rows)]
stack=Stack()
stack.push(start)
visited[start[0]][start[1]] =start
whilestack.top:
current=stack.pop()
ifcurrent==end:
current=visited[current[0]][current[1]] # Retrocede un paso desde el final
whilecurrent!=start:
ifcurrent!=end: # No reemplace la meta "B" con un punto
maze[current[0]][current[1]] ='.'
current=visited[current[0]][current[1]]
print('\n'.join(''.join(row) forrowinmaze)) # Imprime el laberinto final
returnTrue# Termina la ejecución tan pronto como se encuentra el estado objetivo
row, col=current
fordr, dcin [(1, 0), (-1, 0), (0, 1), (0, -1)]:
new_row, new_col=row+dr, col+dc
if (0<=new_row<rowsand0<=new_col<colsand
visited[new_row][new_col] isNoneand
maze[new_row][new_col] !='#'):
stack.push((new_row, new_col))
visited[new_row][new_col] =current
if (new_row, new_col) !=end: # No reemplace la meta "B" con un punto
maze[new_row][new_col] ='.'
print('\n'.join(''.join(row) forrowinmaze)) # Imprime el laberinto
sleep(0.5) # Pausa por un segundo
system("clear")
returnFalse

 

def read_maze_from_file(filename):
maze= []
start=end=None
withopen(filename, 'r') asfile:
fori, lineinenumerate(file):
row=list(line.rstrip().replace('\t', ' '))
if'A'inrow:
start= (i, row.index('A'))
if'B'inrow:
end= (i, row.index('B'))
maze.append(row)
returnmaze, start, end

 

maze, start, end = read_maze_from_file('maze22.txt')

 

if dfs(maze, start, end):
print("Path found from start to end")
 
Please stop inserting points in the next maze, which is a txt file, when you find the letter B.
 
maze22.txt
###                 #########
#   ###################   # #
# ####                # # # #
# ################### # # # #
#                     # # # #
##################### # # # #
#   ##                # # # #
# # ## ### ## ######### # # #
# #    #   ##B#         # # #
# # ## ################ # # #
### ##             #### # # #
### ############## ## # # # #
###             ##    # # # #
###### ######## ####### # # #
###### ####             #   #
A      ######################
Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Similar questions
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY