我已经完成了一个迷宫寻路递归函数作为家庭作业,但我遇到了一个问题。我知道我已经正确地完成了所有事情(通过调试),正在找到路径等。但是当所有递归函数开始返回 True 时,原始/第一个不是!我找不到让它返回 true 的方法(递归调用采用“if, true”格式)。
我希望你们能帮助我,抱歉英语不好,因为它不是我的母语。
*这里是代码:
def pathExists(labyrinth, currCoord, destination, previousRule, visited):
if currCoord == destination:
return True
if currCoord not in labyrinth:
print "False"
return False
rule = labyrinth[currCoord]
if rule == Any:
previousRule = rule
print currCoord
if (pathExists(labyrinth, (currCoord[0], currCoord[1] - 1), destination, rule, visited) or
pathExists(labyrinth, (currCoord[0] + 1, currCoord[1]), destination, rule, visited) or
pathExists(labyrinth, (currCoord[0] - 1, currCoord[1]), destination, rule, visited) or
pathExists(labyrinth, (currCoord[0], currCoord[1] + 1), destination, rule, visited)):
print "True"
return True
else:
print"outro"
elif rule == Bridge:
print currCoord
currCoord = nextCoord(currCoord, previousRule)
if pathExists(labyrinth, currCoord, destination, rule, visited):
print "True"
return True
else:
print currCoord
if currCoord in visited:
print "False"
return False
visited.append(currCoord)
previousRule = rule
currCoord = nextCoord(currCoord, rule)
if pathExists(labyrinth, currCoord, destination, rule, visited):
print "True"
return True