|
发表于 2023-12-30 17:24:18
|
显示全部楼层
好的,下面是完整的展示代码:
- def solve_maze(maze, start, end):
- m, n = len(maze), len(maze[0])
- directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] # 上下左右四个方向
- stack = [] # 使用列表模拟栈
- visited = [[False] * n for _ in range(m)] # 记录已经访问过的位置
- stack.append(start)
- visited[start[0]][start[1]] = True
- while stack:
- curr = stack[-1]
- if curr == end:
- return stack
- x, y = curr
- for dx, dy in directions:
- nx, ny = x + dx, y + dy
- if 0 <= nx < m and 0 <= ny < n and maze[nx][ny] == 0 and not visited[nx][ny]:
- stack.append((nx, ny))
- visited[nx][ny] = True
- break
- else:
- stack.pop()
- return []
- maze = [
- [1, 1, 1, 1, 1, 1, 1],
- [1, 0, 0, 1, 0, 0, 1],
- [1, 1, 0, 0, 0, 1, 1],
- [1, 1, 1, 1, 0, 1, 1],
- [1, 0, 0, 0, 0, 0, 1],
- [1, 1, 1, 1, 1, 1, 1]
- ]
- start = (1, 1)
- end = (4, 5)
- path = solve_maze(maze, start, end)
- if path:
- print("找到路径:")
- for position in path:
- print(position)
- else:
- print("无法找到路径!")
复制代码
该代码将一个7行6列的迷宫表示为一个二维数组`maze`,其中1表示墙壁,0表示可以通过的路径。起始点为`(1, 1)`,终点为`(4, 5)`。输出结果会打印出找到的路径或者提示无法找到路径。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|