Как я могу распечатать решение пути в лабиринте на языке Python?
Привет, я создаю программу-решатель лабиринтов на Python. Я могу заставить лабиринт напечатать перед решением, но я не могу заставить его напечатать, показывая решение лабиринта. До сих пор я не получаю никаких ошибок.
Что я уже пробовал:
#read MAZE import sys mazeFile = open("maze01.txt", 'r') tokens = mazeFile.readline().split() rows = int(tokens[0]) cols = int(tokens[1]) enterRow = int(tokens[2]) enterCol = int(tokens[3]) exitRow = int(tokens[4]) exitCol = int(tokens[5]) def readMaze(maze, filename): #read maze file mazeFile = open(filename, "r") columns = mazeFile.readlines() for j in columns: #make list of lists j = j.strip() i = [n for n in j] maze.append(i) def solve(maze, start, r, c): if c > len(maze) or r > len(maze[c]): return False if maze[c][r] == 'E': return True if maze[c][r] != ' ': return False bc = 'o' maze[c,r] = bc if maze.solveMaze(r + 1, c) == True: bc = '>' elif maze.solveMaze(r, c + 1) == True: bc = 'v' elif maze.solveMaze(r - 1, c) == True: bc = '<' elif maze.solveMaze(r, c - 1) == True: bc = '^' else: bc = ' ' maze[c,r] = bc return (bc != ' ') maze = [ ] readMaze(maze, "maze01.txt") maze.pop(0) maze[enterRow][enterCol] = 'S' maze[exitRow][exitCol] = 'E' for r in range(rows): for c in range(cols): if maze[r][c] == 'S': start = maze[enterRow][enterCol] if maze[r][c] == 'E': end = maze[exitRow][exitCol] solve(maze, start, r, c) start = maze[enterRow][enterCol] end = maze[exitRow][exitCol] print("Here's the maze: \n") for sublist in maze: #print maze line by line print(''.join(sublist))
#E### # # # # # # # # #S###