JS解决迷宫老鼠算法
题目:假设我们有一个大小为NxN的矩阵,矩阵每一个位置是一个方块。每个位置可以是1(可通行)或0(阻挡的),maze[0][0]为起点,maze[n][n]为终点,判断是否可以从起点顺路通往终点。
const maze = [[1,0,0,0],[1,1,1,1],[0,0,0,1],[0,1,0,1]
]
var flag = false;
function test(maze, nowX, nowY) {if(maze[0][0] == 0) return false; //如果起点不通,falselet nowWay; //正在走哪条路if(nowX == maze.length - 1 && nowY == maze[0].length - 1 && maze[nowX][nowY] == 1) { //如果到终点,并且终点为1flag = true;return flag;} else {if(nowX == maze.length - 1 && maze[nowX][nowY + 1] == 0 ) { //如果到了最下排,并且往右走不通if(!nowWay) { //如果已经被清空标记点,无路可换return false;}nowWay = ''; //清空移动方向,回退,重新选择路,并把此点标为0maze[nowX][nowY] = 0;test(maze, nowX - 1, nowY) }if(nowX !== maze.length - 1 && maze[nowX + 1][nowY] == 1 ) { //如果到了最右排,并且下面可以走nowWay = 'x';test(maze, nowX + 1, nowY)}if(nowY !== maze[0].length - 1 && maze[nowX][nowY + 1] == 1 ) { //如果到了最下排,并且右面可以走nowWay = 'y';test(maze, nowX, nowY + 1)}}return flag;
}
console.log('迷宫为:', maze)
console.log(test(maze, 0, 0))
可通行:
不可通行:
如果有更好的解题思路,欢迎留言。
JS解决迷宫老鼠算法相关推荐
- Java与算法之(5) - 老鼠走迷宫(深度优先算法)
小老鼠走进了格子迷宫,如何能绕过猫并以最短的路线吃到奶酪呢? 注意只能上下左右移动,不能斜着移动. 在解决迷宫问题上,深度优先算法的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径. 首先 ...
- python迷宫问题算法_Python解决走迷宫问题算法示例
本文实例讲述了Python解决走迷宫问题算法.分享给大家供大家参考,具体如下: 问题: 输入n * m 的二维数组 表示一个迷宫 数字0表示障碍 1表示能通行 移动到相邻单元格用1步 思路: 深度优先 ...
- 老鼠迷宫java_Java与算法之(5) - 老鼠走迷宫(深度优先算法)
小老鼠走进了格子迷宫,如何能绕过猫并以最短的路线吃到奶酪呢? 注意只能上下左右移动,不能斜着移动. 在解决迷宫问题上,深度优先算法的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径. 首先 ...
- 教小学妹学算法:搜索算法解决迷宫问题
Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 最近有一位小学妹 Coco 入 ...
- 新颖性搜索(Novelty Search,NS)算法实践——利用NS算法解决迷宫导航问题
新颖性搜索(Novelty Search,NS)算法实践--利用NS算法解决迷宫导航问题 新颖性搜索(Novelty Search,NS)算法介绍 NS实现基础 NovItem NoveltyArch ...
- 神经进化算法——利用NEAT算法解决迷宫导航问题(基于NEAT-Python)
神经进化算法--利用NEAT算法解决迷宫导航问题(基于NEAT-Python) 迷宫导航问题 迷宫环境模拟 迷宫导航智能体 迷宫环境实现 传感器数据生成 导航智能体 智能体位置更新 智能体记录存储 智 ...
- 利用广度优先和深度优先算法解决迷宫问题【算法设计与分析】<图搜索问题>
实验问题: 给定一个n*n的迷宫,要求利用广度优先和深度优先算法解决迷宫问题 问题分析: 对于此问题首先要明确搜索顺序 可以分为两种方法求解问题:1.广度优先算法2.深度优先算法 (1)对于深度优先算 ...
- 使用深度优先搜索算法解决迷宫问题
英文 | https://bytefish.medium.com/use-depth-first-search-algorithm-to-solve-a-maze-ae47758d48e7 翻译 | ...
- 【从蛋壳到满天飞】JS 数据结构解析和算法实现-AVL树(一)
前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...
最新文章
- 【FPGA】单端口RAM的设计(同步读、同步写)
- 再次认识 vertical-align
- python--二进制的用法
- 寻找实力高手长期合作
- 爬虫基本库的使用---urllib库
- Android项目开发实战—倒计时[Handler,Timer,TimerTask,Message]
- Windows 10 2022 年更新来了!
- arcsde 和oracle(双机热备)分布式安装(转载)
- oracle 主键列创建自增长,powerdesigner创建oracle 数据库表,设置表主键列为自动增长。 ....
- 数据结构-线性相关代码
- 大学计算机基础网络配置实验报告答案,大学计算机基础实验报告2.doc
- priority_queue 优先队列 hdu裸题。
- 【物体检测】基于matlab GUI形态学物体检测【含Matlab源码 945期】
- 我的世界android制作教程,《我的世界手机版》怎么制作mod制作JS教程图文攻略
- 数据库系统概论课后习题答案(第五版 王珊、萨师煊)
- AlphaGo Zero:从头开始学习
- matlab均值滤波实现
- 关于Snoop的用法
- 参观一家买过十年货的淘宝店是怎样的体验?——新魔术8000生产基地探秘
- 山西民生云认证工资_山西民生云养老资格认证手机版-山西民生云社会保险综合服务平台v2.2 最新版-007游戏网...