matlab中input输入多个数_迷宫(MATLAB)

aa40a0ae5187c595fd37026e3149de78.png

大三那年想学个东西,接触了MATLAB,初步学习了简单的使用之后,在网上看到了各种关于MATLAB的巧妙用法,这才体会到了这个东西的强大,与此同时在游戏算法部分看到了关于可视化迷宫的小视频。那时正值暑假,不练车的我正闲着,便打算好好学学MATLAB,好好学几个迷宫算法。

网上的搜到了代码,可以玩,简洁明了,绘制的界面大致如下

3fd149fed575ffba7a6c721a2f3a9c00.png
线条绘制法

上面的图是自己画的,与原代码的图类似,原代码如下,玩的时候直接复制过去的。

matlab 编写的迷宫程序_没有花香_新浪博客​blog.sina.com.cn

玩了一中午之后才想起来,代码一句都看不懂,要学的东西可太多了!

  • 地图绘制
  • 迷宫生成算法
  • 控制移动

这3点是一切的基础,后面要完善GUI、增添视角模式、设置小功能等都需要用到,所以稳扎稳打的学。

line

上面这个函数是看别人的代码知道的,搜索help,再试错了几次,大概知道了如何使用。一条线会画了,整体就搞定了,无非是通过矩阵中的数值来设定某个位置画线还是留空。

后面了解到矩阵的MATLAB绘法有个非常适合用来画迷宫,那就是

imagesc(map);

画出来是这样的

218492f36fff03e117d6481ebf8faf58.png
色块绘制法

其实上面这种画法并没有线条清晰,但是考虑之后添加的两个视角,觉得这种更好些。

第一个板块——绘图很快就搞定了,接下来该试试生成迷宫,百度又找了3大迷宫生成的经典算法(人家给了生成步骤以及动图)算法完全照着这个文章学的

三大迷宫生成算法 (Maze generation algorithm) -- 深度优先,随机Prim,递归分割​blog.csdn.net

用第二种绘制地图的方式展示下这几个算法的生成过程

DFS深度优先算法
b2065e64c5506cffe7061ed9144c0c46.png
DFS深度优先算法生成迷宫https://www.zhihu.com/video/1194963041584873472
随机prim算法
980e2edcdf449f4660611bc405582d83.png
随机prim算法生成迷宫https://www.zhihu.com/video/1194963260678496256
递归分割算法
c01b2f081b88024f586e60719e1df4ee.png
递归分割算法生成迷宫https://www.zhihu.com/video/1194963437514682368

在搞好了前两点之后,控制移动倒成了难题,把别人的直接挪过来还得改半天,倒不如慢慢学。

10分钟学MATLAB/ GUI_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com
b1ef4e1cabcef58fc76b79f3706c0550.png

不单键盘响应,后面的GUI也是跟这位大佬学的,讲的真的特别棒!

function

上面这段代码是初代测试用版本,无界面,纯手动设置参数,展示视频如下

5432f0a8e89a2eaa6f3569989860109d.png
初代测试版迷宫https://www.zhihu.com/video/1194979021618978816

初代用的线条状地图绘制方式,只有上帝视角(全显示的模式),觉得难度略低形式单一,所以改换色块的绘制方式,并又再加了两种视角。

16ce3b59b2e7852d4f0552119efcea64.png
模式选择框
上帝视角

93a90bf4ad541253b9bef753d4c1edfc.png
上帝视角的难度3
e1324602379ae06c89146644d629b950.png
迷宫展示——上帝视角https://www.zhihu.com/video/1194989522331549696
第一人称

73345d2631c8462de948e3a9693725d6.png
显示以方块为中央的周围区域
8e29ab8ca23256c071900e4bed17c205.png
迷宫展示——第一人称https://www.zhihu.com/video/1194988346974433280
迷雾模式

8ec6dec36c05630f3c167a0e20bd45b9.png
第一视角以外视野不可见
e597d7917672e87c3b5677e158efda43.png
迷宫展示——迷雾模式https://www.zhihu.com/video/1194991998321577984

在主界面的游戏介绍框,除了展示三种生成算法借以了解其特点之外,另编写了两种游戏求解的算法过程展示

4aa176c07f61e485a737850419db3360.png
递归回溯法求解迷宫https://www.zhihu.com/video/1194993010893533184
5cbf3051f905719dee7b6b693a4d0e47.png
摘截末枝法求解迷宫https://www.zhihu.com/video/1194994491516461056
以上程序是2018年暑假到11月份断断续续完成的,大四考研一直没有空把这记录下来,现在初试也考完了,最近没啥事正好一写,迷宫的完整程序已上传网盘,希望可以对喜欢学习MATLAB的人能有帮助。再过两天就是2020年了,希望大家未来越来越好!

1cf0c5c374331c6f74dc996a35147c38.png
简单GUI界面的迷宫
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值