gpt4 book ai didi

python - 用python解决迷宫

转载 作者:太空狗 更新时间:2023-10-29 21:05:46 27 4
gpt4 key购买 nike

我正在尝试制作一个迷宫解算器,它正在工作,除了路径被标记为“o”,我希望它被标记为“>”、“<”、“v”、“^”取决于路径的方向。这是解决迷宫的代码部分:

 def solve(self,x,y):
maze = self.maze

#Base case
if y > len(maze) or x > len(maze[y]):
return False

if maze[y][x] == "E":
return True

if maze[y][x] != " ":
return False


#marking
maze[y][x] = "o"

#recursive case
if self.solve(x+1,y) == True : #right
return True
if self.solve(x,y+1) == True : #down
return True
if self.solve(x-1,y) == True : #left
return True
if self.solve(x,y-1) == True : #up
return True

#Backtracking
maze[y][x] = " "
return False

这是一个未解迷宫的例子:

####################################
#S# ## ######## # # # # #
# # # # # # #
# # ##### ## ###### # ####### # #
### # ## ## # # # #### #
# # # ####### # ### #E#
####################################

这是使用上面的代码解决同一个迷宫的版本:

####################################
#S# ## ######## # #oooooo# ooo# #
#o#ooo# oooo #o# ooooo#ooo#
#ooo#o#####o##o######o# ####### #o#
### #o##oooo##oooooo#o# # ####o#
# #oooo# #######ooo# ### #E#
####################################

我想要得到的结果是:

####################################
#S# ## ######## # #>>>>>v# ^>v# #
#v#^>v# >>>v #^# >>>>^#>>v#
#>>^#v#####^##v######^# ####### #v#
### #v##^>>^##>>>>>v#^# # ####v#
# #>>>^# #######>>^# ### #E#
####################################

这怎么可能?

最佳答案

#marking
maze[y][x] = "o"

#recursive case
if self.solve(x+1,y) == True : #right
maze[y][x] = ">"
return True
if self.solve(x,y+1) == True : #down
maze[y][x] = "v"
return True
...

来自 Lix 示例。您需要取消注释 maze[y][x] = "o",您需要该行以防止重新访问该节点

关于python - 用python解决迷宫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700130/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com