我有一个程序可以搜索代表迷宫的2D列表,如下所示:
####################################
#S# ## ######## # # # # #
# # # # # # #
# # ##### ## ###### # ####### # #
### # ## ## # # # #### #
# # # ####### # ### #E#
####################################
Run Code Online (Sandbox Code Playgroud)
我理解递归错误是什么,但我不知道为什么这个代码会导致它,因为它应该只是导致找到"E".有谁知道这可能会产生错误?
def solve(x,y):
mazeList = loadMaze("sample.maze")
if mazeList[y][x] == "E":
return "YOU'VE SOLVED THE MAZE!"
elif mazeList[y][x+1] == " ": #right
mazeList[y][x+1] = ">"
solve(x+1,y)
elif mazeList[y+1][x] == " ": #down
mazeList[y+1][x] = "v"
solve(x,y+1)
elif mazeList[y][x-1] …Run Code Online (Sandbox Code Playgroud) int u = 21;
int v = 10;
if (u && v) printf(“ Time to move on!! ”);
if (u & v) printf(“Do it today!! \n”);
Run Code Online (Sandbox Code Playgroud)
这只打印"继续前进的时间!!" 这是有道理的,因为u和v在第一个if语句中都是正确的但是对于"if(u&v)"我不确定它是如何确定这是真还是假.我明白了它是21和10的两个二进制表示但是接着是什么?谢谢!