所有消除游戏背后那些看不见的数字

简介: 嗨!大家好,我是小蚂蚁,这是消除游戏系列教程的第 2 篇。在上一篇中我们讲到所有消除游戏(严格来讲是所有的非纯物理的消除游戏)的背后都有一张看不见的“网格”,这张“网格”是一个消除游戏的基础,有了它才有了行列式的布局,你才能够把指定的元素(图标)放置在指定的位置上,就像下面这样。

嗨!大家好,我是小蚂蚁,这是消除游戏系列教程的第 2 篇。

在中我们讲到所有消除游戏(严格来讲是所有的非纯物理的消除游戏)的背后都有一张看不见的“网格”,这张“网格”是一个消除游戏的基础,有了它才有了行列式的布局,你才能够把指定的元素(图标)放置在指定的位置上,就像下面这样。



在有了这样的基础之后,我们下一步是不是就可以开始实现各种各样的操作,去进行消除啦?且慢,在处理各种操作进行消除之前,你还需要理解一个东西,那就是所有消除游戏背后那些看不见的“数字”。


作为一个游戏制作者,你应该对自己有更高的要求,除了看见玩家所能看到的东西,也需要具备一双可以洞穿游戏的眼睛,看到那些玩家看不到的东西。除了看见那张“网格”,还需要再进一步,看见那张网格上面的“数据”。

如图,这是一个典型的三消游戏的样子。一个 6 x 6 的布局,共包含 4 种不同的元素。

任意交换相邻的两个元素,交换后,如果在水平或者竖直方向上满足相邻的至少 3 个元素相同这一条件,就消除这些元素。因为规则是满足 3 个相同的元素即可消除,所以又被称作是“三消”。

下面用你的眼睛扫描一下上方这个三消游戏的图片,看到那个“网格”了吗?(没看到的话证明你的“游戏创作者之眼”没有修炼好,请回顾一下,继续修炼一下)。


如果你的“游戏创作者之眼”修炼合格的话,你应该是可以看到下方的这张“网格”的,一个 6 行 6 列的网格,上方的那些消除游戏中的图标一个一个老老实实的按照这样的布局安放到每一个格子中。


接着,我们在看见“网格”的基础上,再进一步。

如图,网格中不再是空空如也了,而是填满了数字。这些数字是根据什么来填的呢?看一下右侧,我们用 1 表示黄色的正方形,2 表示红色的三角形,3 表示绿色的五边形,4 表示蓝色的六边形。然后对照着上方的游戏界面,我们将这些数字填入到了下方的这个网格中。接下来,我们的注意力将都会放置在这张填满数字的网格上,因为我们将借助它来完成查找,匹配,以及后来的消除和移动等操作。


你可能会问,为什么放着上方这个直观的图形界面不用,非要把它转换成下方这个看起来晦涩的数字网格呢?这个问题非常好,值得好好的回答一下。


如果你想要和一个只懂英语的人交流,那你会怎么做?先要把你想要表达的内容转换成英语,然后传达给对方,这样对方才有可能理解你的意思。如果,你上来冲着对方来一通汉语,那结果会怎样?大概只能看到对方一张布满问号的脸。


现在我们把外国人换一下,如果你想要和一台计算机交流,你会怎么做?先要把你想要做的东西转换成它能够理解的语言,然后传达给它,这样它才能够理解你的用意,做出你想要做的东西。如果,你上来冲着计算机说:嗨,哥们!我想做一个三消游戏,就那种三个一样的图标凑在一起就可以消除的,怎么样?很简单吧!帮我来一个。你猜结果会怎样。


对于人类来讲,我们更擅长处理表象化的东西,黄色的正方形匹配黄色的正方形,红色的三角形匹配红色的三角形,这样很直观,很容易理解。但是对于计算机来讲,它无法理解这些东西,它擅长处理的是“数据”。所以,为了能够和它顺畅的交流,我们就必须要把表象化的东西转化成它所能够理解的“数据”。这个东西还有一个高大上的词汇,叫做“数据抽象”。


其实说白了,就是如果你想要计算机帮你干活,那你就必须跟它说点儿它能够听的懂的“话”。


解答完了这个问题之后,我们就能够踏踏实实的看看这张填满数据的表格了。对于一个“三消”游戏来讲,我们如何把它的规则翻译成计算机能听得懂的“话”?


任意交换网格中两个相邻的数字,交换之后,如果满足在当前行或者列上至少 3 个相邻的数字相等,那么这 3 个相邻的数字就满足消除条件,就可以进行消除。

如图,我们将第 4 行第 4 列的 “” 和第 4 行第  列的 “” 进行交换,交换之后,竖直方向上的 3 个数字 4 相等,此时就满足消除消除条件。


好了,这就是消除游戏背后的那些看不见的“数字”了,对于玩家来讲,看到的是一个一个的游戏图标在移动,在消除,在下落,而对于游戏创作者来讲,你所做的其实是在一张布满数字的表格上,交换,比较,移动。这是两个完全不同的目光所及的两个完全不同的世界,是不是特别的神奇呢?


我们如何在游戏制作时构建这张填满数据的网格呢?仔细再看一下这个网格,它是不是很像是一个表格,二维数组,数组的数组......根据你所使用的编程语言和游戏制作工具的不同,一定都能找到对应的数据类型来呈现出这样的一个布满数据的表格。


在上一篇的基础上,我们在构建“网格”时,就可以再增加一个对应位置上的数字了。

->计算起始点的位置x0,y0
->循环(行数)次
  ->循环(列数)次
    ->创建元素
    ->根据当前的行列,设置元素的位置xn,yn
    ->根据当前的行列,在网格上的对应位置设置表格当前元素的数字(新增)
  ->列循环结束
->行循环结束


这样在绘制出可见的图标的同时,我们也绘制出了一张看不见的填满数据的“网格”。


在你的“游戏创作者之眼”得到进一步的提升之后,我们再来看一下那些常见的消除游戏吧!


  • 三消


交换两个数字,水平或者竖直方向上有 3 个相等的数字即可消除。




对于这类型的消除游戏来说,数据格式要简单很多,因为只需要 (计算机最喜欢的东西),只要一行或者一列的数字都是 1就满足消除条件,是不是有一种豁然开朗的感觉。


  • 连线消除


连线消除游戏,水平,竖直或者倾斜方向,只要数字相等,就可以把它们连起来,连起来的数字等于或超过 3 个就可以消除。


  • 点击消除(消星星)


点击任意一个数字,水平或者竖直方向上只要有相同的数字就消除。


仔细的观看上方的这 4 种不同类型的消除游戏的动图,来提升你的“游戏创作者之眼”的等级。


看起来千变万化类型各异的消除游戏,其实背后只不过是在包含着 这 5 个数字的表格中进行着各种各样的操作和处理,是不是有种“不过如此”的感觉呢?


在表象的游戏世界之下总有一些看不见的东西,作为游戏的创作者你需要具备一双“创作者之眼”来发现它们。很多看上去神奇的东西背后,只不过是一些简单的原理。发现它们就如同是捅破了一层窗户纸,让复杂多变的世界瞬间变得清晰而简单,此时,你可能会禁不住感叹:哦!原来是这样,不过如此啊!


想学习做游戏的话,关注我的就对啦!

另外我做了一门游戏开发课程服务,提供围绕着学习做游戏有关的一整套的服务,却只需一门的价钱。想学习做游戏的朋友不要错过了。可以了解这个服务的详情。

这里是我做的消除小游戏,不去看看吗?


精致

一个很精致的消除游戏。

小程序

圆点守护者

为守护家园而战

小程序

也欢迎加个微信,交个朋友,毕竟我还是个蛮有意思的人呢!

相关文章
|
3月前
|
人工智能 算法 开发者
开动脑洞,验证Sora的视频生成潜力
最近一段时间在人工智能领域又有了新的爆炸新闻,那就是OpenAI的Sora模型引发了对AI视频生成技术的关注,Sora是一种引人注目的AI视频生成技术,它的诞生也会让一些领域发生颠覆性变革,也会改变一部分人的工作性质。那么本文就来简单探讨一下Sora可能对不同行业带来的变革,以及如果有机会使用Sora创作第一个AI短视频,大家希望它生成什么样的内容,并讨论生成式AI目前在技术和伦理道德层面所面临的挑战。
37 0
开动脑洞,验证Sora的视频生成潜力
|
5月前
|
人工智能 数据格式
所有消除类游戏背后那些看不见的数字
所有消除类游戏背后那些看不见的数字
34 1
|
5月前
|
开发者
所有消除游戏背后都有一张看不见的网格
所有消除游戏背后都有一张看不见的网格
30 0
|
12月前
|
开发者
所有消除游戏背后那张看不见的网格
观察一下上方的这一系列各种各样的消除游戏的图片,它们都有着这样的一个共同点,就是都是按照行列进行布局,有 7 行 7 列,有 10 行 10 列的。这样的行列布局是不是特别的像一个“网格”?这就是我们今天要讲的,所有消除游戏背后都有的那张看不见的“网格”。
77 0
|
12月前
|
小程序 搜索推荐
计划写一个消除游戏系列
我决定为自己开一个“大坑”,就是写一个消除游戏的系列。在这个系列中将会包含各种各样的消除游戏的实现原理和方法,目前在计划之中的有连线消除,点消和三消。
58 0
|
12月前
|
小程序 算法 数据可视化
个人想通过做游戏可行吗?难吗?
当然不是了。这其实就跟“某人制作了一条短视频了xx万”,“某人的一篇文章价值xx万”,“某人买了一注双色球了xx万”是一样的。这些其实都是极小概率事件儿,但是如今,如宇宙大爆炸般的比特信息,再加上刻意的引导,算法的助力,仿佛让这些极小概率事件儿变得不那么小了。这些事情似乎每天每时每刻都在发生,很容易就会让人觉得习以为常。
111 0
|
JavaScript
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
286 0
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
|
数据格式
所有消除游戏背后那些看不见的数字
作为一个游戏制作者,你应该对自己有更高的要求,除了看见玩家所能看到的东西,也需要具备一双可以洞穿游戏的眼睛,看到那些玩家看不到的东西。除了看见那张“网格”,还需要再进一步,看见那张网格上面的“数据”。
113 0
所有消除游戏背后那些看不见的数字
|
机器学习/深度学习 人工智能 自然语言处理
网易有道词典一个小更新,消除了你和全球一半人类的沟通障碍
完全不懂外语的你也可以拿起手机,和老外直接对话了:甚至不需要选择彼此说着的是什么语言。
231 0
网易有道词典一个小更新,消除了你和全球一半人类的沟通障碍
|
小程序 搜索推荐 程序员
程序员的路是一行一行走出来的,分享给想要进入这个行业的人
  01、大学   回想十年前,我还是一名大学生,傻乎乎的对未来没有任何的规划。每天就知道混日子,打打游戏、谈谈恋爱。至于毕业后能不能找到一份工作,心里完全没个底。   有时间的时候读读《代码大全》、《人月神话》、《人件》、《代码的整洁之道》等等经典名著,这将对你的未来大有裨益。如果文笔还不错的话,还可以在各大论坛上写写博客,把读书的心得分享出来,记录自己的同时分享给更多的人。   如果时间还有一点剩余的话,在 GitHub 上开源一些项目吧!比如说,搞个抢票的软件、微信读书组队的小程序。假如这些项目星标超过 5K,那么找工作的时候不能说轻而易举吧,至少能亮瞎面试官的双眼。   坚持
110 0