找到走出迷宫的方法

lndjwyie  于 2021-09-23  发布在  Java
关注(0)|答案(0)|浏览(161)

我需要写一个算法来找到走出迷宫的方法,这是二维数组。我玩过代码,但它不能完全理解当没有多余的加号时,我应该如何在代码中标记终点线,这是一条离开迷宫的路吗? 0 -起始位置 + -方式 # -墙。
我走对了吗?递归函数是解决这个问题的好方法吗?

  1. var maze = [
  2. ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#'],
  3. ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#'],
  4. ['#', '#', '+', '+', '#', '#', '#', '#', '#', '#'],
  5. ['#', '#', '+', '#', '0', '#', '+', '+', '+', '+'],
  6. ['#', '#', '+', '+', '+', '+', '+', '#', '#', '#'],
  7. ['#', '#', '#', '#', '#', '+', '+', '#', '#', '#'],
  8. ['#', '#', '#', '#', '#', '#', '+', '#', '#', '#'],
  9. ['#', '#', '#', '#', '#', '#', '+', '#', '#', '#'],
  10. ['#', '#', '#', '#', '#', '#', '+', '+', '#', '#'],
  11. ['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
  12. ];

我玩过代码,但还是不能完全理解?我走对了吗?递归函数可以解决这个问题吗?我非常感谢所有能帮助我的人。
我的“不完美代码”:)

  1. function goFurther(row, column) {
  2. console.log(maze[row][column]);
  3. if (maze[row][column] == ' ') {
  4. console.log('We solved the maze');
  5. } else if (maze[row][column] == '+') {
  6. console.log('you need make it go further');
  7. maze[row][column] = 909;
  8. if (row < maze.length - 1) {
  9. goFurther(row + 1, column);
  10. }
  11. if (column < maze[row].length - 1) {
  12. goFurther(row, column + 1);
  13. }
  14. if (row > 0) {
  15. goFurther(column + 1, row);
  16. console.log(row, column);
  17. }
  18. if (column > 0) {
  19. goFurther(row + 1, column);
  20. console.log(row, column);
  21. }
  22. }
  23. }
  24. goFurther(2, 2);

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题