递归-迷宫回溯
2020-12-21 10:02:45 0 举报
递归-迷宫回溯原理
作者其他创作
大纲/内容
1
0
2
最后return false到调用处就结束
由于下已经走过了,标识为2通路了,也就是上左右都不能走
3
if (map[y][x] == 0) { //假定可以走 map[y][x] = 2;
return false结束了一个递归,回来执行上一个递归
生成
} else { return false; }
回溯
为方便解析,进一步抽离
int[][] map = new int[row][col]; //设置列围墙为* for (int i = 0; i < row; i++) { map[i][0] = 1; map[i][6] = 1; } //设置行围墙为* for (int i = 0; i < col; i++) { map[0][i] = 1; map[7][i] = 1; } //设置障碍物 map[3][1] = 1; map[3][2] = 1; map[1][2] = 1; map[2][2] = 1;
递归-迷宫回溯
else { map[y][x] = 3; //表明是死路 return false; }
此时进入了一个新的递归函数中,暂停了当前的递归
//0表示还没走过 if (map[y][x] == 0) { //假定可以走 map[y][x] = 2;
col=7
由于上已经走过了,标识为2通路了,也就是下左右都不能走
row=8
0 条评论
下一页