""" 迷宫寻路 """ import random import sys WALL = -1 ROAD = 0 ROWS = 10 COLS = 10 def find_way(maze, i=0, j=0, step=1): """走迷宫""" if 0 <= i < ROWS and 0 <= j < COLS and maze[i][j] == 0: maze[i][j] = step if i == ROWS - 1 and j == COLS - 1: print('=' * 20) display(maze) sys.exit(0) find_way(maze, i + 1, j, step + 1) find_way(maze, i, j + 1, step + 1) find_way(maze, i - 1, j, step + 1) find_way(maze, i, j - 1, step + 1) maze[i][j] = ROAD def reset(maze): """重置迷宫""" for i in range(ROWS): for j in range(COLS): num = random.randint(1, 10) maze[i][j] = WALL if num > 7 else ROAD maze[0][0] = maze[ROWS - 1][COLS - 1] = ROAD def display(maze): """显示迷宫""" for row in maze: for col in row: if col == -1: print('■', end=' ') elif col == 0: print('□', end=' ') else: print(f'{col}'.ljust(2), end='') print() def main(): """主函数""" maze = [[0] * COLS for _ in range(ROWS)] reset(maze) display(maze) find_way(maze) print('没有出路!!!') if __name__ == '__main__': main()