发布时间:2023-11-27 02:07:18 浏览量:121次
这篇连连看教程我尝试换一种方式,多讲一些算法思路和编程思想,少贴一些代码。
大家应该都玩过连连看,游戏规则不多说了,我们先看看设计思路。
第一件事要根据游戏玩法确定程序的数据结构,不同的数据结构决定了不同的算法设计,用错了数据结构可能直接让代码复杂好几倍。
连连看中玩家操作的数据是一个个的图片,多个图片组成一个棋盘式的矩阵界面。程序根据玩家的点击位置计算两个图片的连接路线,这要求程序以最快、最简单的方式获得矩阵中每个格子的数据。
用二维数组表示游戏中的矩阵界面比较合适,因为数组可以通过索引快速访问数据,二维数组的两个索引刚好对应矩阵界面的(x, y)坐标。例如:
图中矩阵数据在代码中应该这样表示:
可以用不同的数字代表不同的图片,比如:
那么上面的矩阵绘制的时候就会是这样:
0表示空格,不显示图片。初始化时的空格或消除后的空格,都会被设置为0。
接下来要初始化数据,我打算用8种不一样的图片,每种6张,随机放入矩阵中,矩阵最外一圈是空的。这个算法可以用标准库函数 std::random_shuffle 来完成。std::random_shuffle 用于把容器内的数据随机打乱,因此按顺序把数据放入数组中,然后调用 std::random_shuffle 就可以完成初始化。
断点运行观察数组数据,和我们设计的一样:
贴上图片看起来还不错:
现在来分析游戏玩法。这个游戏的难点是两个图片连接的判定算法,要求连接线只能转折两次。
我的第一反应这是一个寻路算法,要求找到转折两次以下的最短路径。教科书上常见的广度优先搜索、深度优先搜索、DijKstra算法或是游戏中常用的A星算法,稍作修改加上两次转折的限制都能解决这个问题。
但是如果我用这些比较复杂的算法来教新手,显然是在劝退。所以还是考虑找一找连线判定的算法有没有简单的规律。
多玩几次游戏,把不同种类的连线记录下来,总结后可以发现总共有3种连线类型,分别是不转折连接、转折一次和转折两次。
还是从最简单的情况开始考虑。这是解决难题的通用方法:从最简单的情况开始考虑,再逐步增加复杂的条件。
最简单的不转折连接,有两种情况,横向连线和纵向连线:
这两种情况很容易处理,横向、竖向依次检查每个格子是否被阻挡即可。
最后把这两个合并就是不转折的情况下:
转折一次:
转折一次的算法也是比较明显的,像上图中的两种情况,找到绿色点的位置,如果这个点可以不转折连到两个红色的图片,那么这两个红色的图片就可以通过一次转折连接。
绿点的位置是由两个红点决定的,只有上图中的两种可能。
转折两次的情况就多了,下图同样是连接红色图片,要绕过绿色图片。
转折两次的情况很多,这里无法一一列举,但是仔细思考可以发现和转折一次本质上是一样的,就是找到两个点,这两个点可以分别和红色图片无转折连接,并且这两个点也可以无转折连接。
这两个点需要位于经过红色图片的十字线上,并且只要确定一个了其中一个点,就能对应地找到另一个点:
因此只要遍历其中一个图片的两条十字线经过的所有的点,并计算出另一个图片十字线上对应点的位置,检查这两个点和两个红色图片是否可以无转折连接:
代码码完了,添上图片和鼠标检测的代码跑一跑试试。
右边显示临时显示字符用于测试连通性,多次测试没有问题。
最后加上连线,并清除被点击的两个格子,就完成了连连看的核心逻辑。你学会了吗?
热门资讯
探讨游戏引擎的文章,介绍了10款游戏引擎及其代表作品,涵盖了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戏设计领域和数字艺术教育的重要性,欢迎点击咨询报名。
游戏中玩家将面临武侠人生的挣扎抉择,战或降?杀或放?每个抉定都将触发更多爱恨纠葛的精彩奇遇。《天命奇御》具有多线剧情多结局,不限主线发展,高自由...
3. 手机游戏如何开发(如何制作传奇手游,都需要准备些什么?)
如何制作传奇手游,都需要准备些什么?提到传奇手游相信大家都不陌生,他是许多80、90后的回忆;从起初的端游到现在的手游,说明时代在进步游戏在更新,更趋于方便化移动化。而如果我们想要制作一款传奇手游的
UI设计师、动画设计师、特效设计师每一个职位的功能和负责的方面都不同。所以,3D美术这方面需要大量的人才。但是要成为一个3D游戏建模师,也不是那么...
三昧动漫对于著名ARPG游戏《巫师》系列,最近CD Projekt 的高层回应并不会推出《巫师4》。因为《巫师》系列在策划的时候一直定位在“三部曲”的故事框架,所以在游戏的出品上不可能出现《巫师4》
6. 传奇游戏开发一个多少钱(做一款传奇类的游戏需要多少钱?)
做一款传奇类的游戏需要多少钱?一.做一款传奇类的游戏大概需要多少钱? 1.开发这样一款游戏,一开始投入的资金大概在15-20万左右,时间越长,投入的金额就越大。你开发的游戏需要扩展服务器和一些宣传
7. 3D动画软件你知道几个?3ds Max、Blender、Maya、Houdini大比拼
当提到3D动画软件或动画工具时,指的是数字内容创建工具。它是用于造型、建模以及绘制3D美术动画的软件程序。但是,在3D动画软件中还包含了其他类型的...
8. 运行UE5的最佳配置推荐,不同场景下UE5的不同配置需求
尽管据说虚幻引擎 5 通常可以与可以充分运行虚幻引擎 4 的机器正常工作,但必须注意的是,虚幻引擎 5 的新 Nanite 或 Lumen 等新功能需要更高的 GPU 能...
9. 开发一款游戏引擎很难吗?为什么国内好像没有自己的游戏引擎。
开发一款游戏引擎很难吗?为什么国内好像没有自己的游戏引擎。
虚幻引擎5上线后带来了高配置要求的问题,游戏优化一直是难题。本文通过几款游戏实例,探讨虚幻引擎5的配置需求和优化问题,引发对游戏优化责任的思考。
最新文章
1. 打开微信扫一扫,扫描左侧二维码
2. 添加老师微信,马上领取免费课程资源
同学您好!