![aa40a0ae5187c595fd37026e3149de78.png](https://i-blog.csdnimg.cn/blog_migrate/c04920361cb686667dc795b61a61ae2d.jpeg)
大三那年想学个东西,接触了MATLAB,初步学习了简单的使用之后,在网上看到了各种关于MATLAB的巧妙用法,这才体会到了这个东西的强大,与此同时在游戏算法部分看到了关于可视化迷宫的小视频。那时正值暑假,不练车的我正闲着,便打算好好学学MATLAB,好好学几个迷宫算法。
网上的搜到了代码,可以玩,简洁明了,绘制的界面大致如下
![3fd149fed575ffba7a6c721a2f3a9c00.png](https://i-blog.csdnimg.cn/blog_migrate/3100a1d81de57869966543048c432795.jpeg)
上面的图是自己画的,与原代码的图类似,原代码如下,玩的时候直接复制过去的。
matlab 编写的迷宫程序_没有花香_新浪博客blog.sina.com.cn玩了一中午之后才想起来,代码一句都看不懂,要学的东西可太多了!
- 地图绘制
- 迷宫生成算法
- 控制移动
这3点是一切的基础,后面要完善GUI、增添视角模式、设置小功能等都需要用到,所以稳扎稳打的学。
line
上面这个函数是看别人的代码知道的,搜索help,再试错了几次,大概知道了如何使用。一条线会画了,整体就搞定了,无非是通过矩阵中的数值来设定某个位置画线还是留空。
后面了解到矩阵的MATLAB绘法有个非常适合用来画迷宫,那就是
imagesc(map);
画出来是这样的
![218492f36fff03e117d6481ebf8faf58.png](https://i-blog.csdnimg.cn/blog_migrate/7bea672c59b42efa0810ccb2be7e8f9f.jpeg)
其实上面这种画法并没有线条清晰,但是考虑之后添加的两个视角,觉得这种更好些。
第一个板块——绘图很快就搞定了,接下来该试试生成迷宫,百度又找了3大迷宫生成的经典算法(人家给了生成步骤以及动图)算法完全照着这个文章学的
三大迷宫生成算法 (Maze generation algorithm) -- 深度优先,随机Prim,递归分割blog.csdn.net用第二种绘制地图的方式展示下这几个算法的生成过程
DFS深度优先算法
![b2065e64c5506cffe7061ed9144c0c46.png](https://i-blog.csdnimg.cn/blog_migrate/dcd7b8676ea7adb91466cf3967691ff8.png)
随机prim算法
![980e2edcdf449f4660611bc405582d83.png](https://i-blog.csdnimg.cn/blog_migrate/519e67f722f15fce3ade996ec5f9ca65.png)
递归分割算法
![c01b2f081b88024f586e60719e1df4ee.png](https://i-blog.csdnimg.cn/blog_migrate/28f9889edbc5a787ee7a6e019cc620b7.png)
在搞好了前两点之后,控制移动倒成了难题,把别人的直接挪过来还得改半天,倒不如慢慢学。
10分钟学MATLAB/ GUI_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com![b1ef4e1cabcef58fc76b79f3706c0550.png](https://i-blog.csdnimg.cn/blog_migrate/3b6fc59bc66c73ff47a4cb0311c1b4b4.jpeg)
不单键盘响应,后面的GUI也是跟这位大佬学的,讲的真的特别棒!
function
上面这段代码是初代测试用版本,无界面,纯手动设置参数,展示视频如下
![5432f0a8e89a2eaa6f3569989860109d.png](https://i-blog.csdnimg.cn/blog_migrate/27ca20b1aa72b9424563c6a03555ea37.png)
初代用的线条状地图绘制方式,只有上帝视角(全显示的模式),觉得难度略低形式单一,所以改换色块的绘制方式,并又再加了两种视角。
![16ce3b59b2e7852d4f0552119efcea64.png](https://i-blog.csdnimg.cn/blog_migrate/6401478d7c36c6d9fcf1ef4b4f41f6c7.png)
上帝视角
![93a90bf4ad541253b9bef753d4c1edfc.png](https://i-blog.csdnimg.cn/blog_migrate/72ef26993ba3b3eee0b5a2b1faf1d354.jpeg)
![e1324602379ae06c89146644d629b950.png](https://i-blog.csdnimg.cn/blog_migrate/5a6e2ad700b9d1979b64c51a36f289c5.png)
第一人称
![73345d2631c8462de948e3a9693725d6.png](https://i-blog.csdnimg.cn/blog_migrate/6e97d9110aa77f60e11465a268f622df.jpeg)
![8e29ab8ca23256c071900e4bed17c205.png](https://i-blog.csdnimg.cn/blog_migrate/9bc893e3982b1ba1e23cfcd2f432a2f8.png)
迷雾模式
![8ec6dec36c05630f3c167a0e20bd45b9.png](https://i-blog.csdnimg.cn/blog_migrate/9d0b975826c95eff94aaed30a9594b91.jpeg)
![e597d7917672e87c3b5677e158efda43.png](https://i-blog.csdnimg.cn/blog_migrate/aac0236c492311b6e5e54c3209210035.png)
在主界面的游戏介绍框,除了展示三种生成算法借以了解其特点之外,另编写了两种游戏求解的算法过程展示
![4aa176c07f61e485a737850419db3360.png](https://i-blog.csdnimg.cn/blog_migrate/446c25da273743001fc6eae837bccffd.png)
![5cbf3051f905719dee7b6b693a4d0e47.png](https://i-blog.csdnimg.cn/blog_migrate/60068d766bab96192c3a375bee28049b.png)
以上程序是2018年暑假到11月份断断续续完成的,大四考研一直没有空把这记录下来,现在初试也考完了,最近没啥事正好一写,迷宫的完整程序已上传网盘,希望可以对喜欢学习MATLAB的人能有帮助。再过两天就是2020年了,希望大家未来越来越好!
![1cf0c5c374331c6f74dc996a35147c38.png](https://i-blog.csdnimg.cn/blog_migrate/81c37922c79b66c378a88ff94d97ae6d.png)