【发布时间】:2020-06-26 07:52:28
【问题描述】:
这是我在迷宫问题中解决老鼠的代码我正在尝试使用 canmoveforward 和 canmovedown 函数的逻辑,但出现类型错误,int object is not subscriptable 我不明白为什么它显示错误
puzzle=[[1,0,0,0],
[1,1,0,1],
[0,1,0,0],
[0,1,1,1]]
sol=[[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]]
N=4;
def canforward(x,y,arr,N):
if x==y==N:
return False
else:
for i in range(x+1,N):
if arr[i][y]==1:
return True
return False
def canmovedown(x,y,arr,N):
if x==y==N:
return False
else:
for i in range(y+1,N):
if arr[x][i]==1:
return True
return False
def runrat(x,y,arr):
if x==y==N:
print(sol)
return True
else:
if canforward(x,y,arr,N):
sol[x+1][y]=1
if runrat(x+1,y,N):
return True
else:
sol[x+1][y]=0
return False
elif canmovedown(x,y,arr,N):
sol[x][y+1]=1
if runrat(x,y+1,N):
return True
else:
sol[x][y+1]=0
return False
else:
return False
runrat(0,0,puzzle)
print(sol)
【问题讨论】:
-
分享错误
标签: python-3.x typeerror backtracking