gpt4 book ai didi

Python迷宫解谜程序: how to mark correct path

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:00 25 4
gpt4 key购买 nike

我编写了一个递归解迷宫的程序。它打开一个包含迷宫的文本文件,将其转换为列表列表,然后尝试递归求解。这是解决迷宫的部分:

def search(x,y, mazeList):
# returns True if it has found end of maze
if mazeList[x][y] == 'E':
return True
# returns False if it encounters a wall
elif mazeList[x][y] == '-':
return False
elif mazeList[x][y] == '+':
return False
elif mazeList[x][y] == "|":
return False
# returns False if it finds a visited path
elif mazeList[x][y] == '*':
return False
# marks path with '*'
mazeList[x][y] = '*'

# recursive search
if ((search(x+1, y, mazeList))
or (search(x, y-1, mazeList))
or (search(x-1, y, mazeList))
or (search(x, y+1, mazeList))):
return True
return False

在迷宫中,'-'、'+' 和 '|'组成迷宫的墙壁,可以导航空白空间,'E'是迷宫的尽头。它从迷宫的左下方开始,然后从那里开始。我希望正确的路径用 * 标记,但是它用 * 标记它所采用的每条路径,即使它是它回溯的错误路径。

那么我该如何编辑我的代码,以便最后只有从开始到结束的正确路径用 * 标记

最佳答案

您可以尝试在“返回途中”重写路径,使用与您用来创建已访问路径的“*”不同的符号。

例子:替换

if mazeList[x][y] == 'E':
return True

if mazeList[x][y] == 'E':
mazeList[x][y] = 'o'
return True

if ((search(x+1, y, mazeList))
or (search(x, y-1, mazeList))
or (search(x-1, y, mazeList))
or (search(x, y+1, mazeList))):
return True

if ((search(x+1, y, mazeList))
or (search(x, y-1, mazeList))
or (search(x-1, y, mazeList))
or (search(x, y+1, mazeList))):
mazeList[x][y] = 'o'
return True

希望路径用o写。虽然没有测试它

关于Python迷宫解谜程序: how to mark correct path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19367325/

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