玩switch游戏——马里奥·奥赛德——的发现

原创 2018年04月15日 06:11:12

    晚上一时兴起,打开久已蒙尘的switch游戏机,玩了会儿马里奥·奥赛德,真正的良心制作:


里面有一个智力关卡:


要求最终摆成下面样子:


上图中,戴帽子的石头是由玩家控制的,可以向上下左右滚动,但不能超过边线,也即只有八个方块可供闪转腾挪。如果石头向右滚动,左边的面会变成向上的面,上面的面会变成向右的面,问如何能把石头摆成对称?


解决此类脑筋急转弯类问题,一般都是有固定套路的:找出最最基本的条件,组合这些条件,就能得到答案。这个智力小游戏也是这样。

关键问题是,这个游戏的基本条件是什么?

先随便试试:


各种旋转之下,似乎就是跟平常的色子差不多,6个面的正方体。在最后一步之前不能旋转到目标位置上,有些像“华容道”。

———————————————————— 正经的分割线 ————————————————————

下面开始分析问题:

一开始看到这个游戏时,可能有些人第一反应是“找规律”,按一定规律进行旋转,便可以在最后转到目标方格内。但稍微想一下会发现,这个规律要求我们的大脑有强大的空间立体记忆能力,要分清6x4=24种情况(和色子一样,第一个面有6种可能,第二个面只有相邻的4种可能,剩下的面就能确定了),再分析每种情况的后续情况,对于人类平均记忆常数7来说,有些吃力了,所以找规律似乎并不是个明智的选择(如果您是天才,当我没说)。

找规律有些行不通了,那就从最基本的条件出发吧。首先,我们会看到,石块的起始状态和最终状态是一样的,那我们可以想一下,有哪些情况下,能使石块的初态和终态一致:

1. 沿着一个方向连续转动4次,石块将和初始状态一致,看图中情况,起始位置和终点位置没在一条直线上,所以这种情况不可能。

2. 右1下1右1下1右1下1(下右、右上、上右、左上、上左、左下、下左都可以),这种曲线转动,连续3次右下,也可以达到初始状态。

第2种情况因为是曲线,显然更符合目前情况,似乎是一条可行方案。但我们很快注意到:游戏中只有两排方格,也就是说,或上或下,是不能达到第3次的,这个矛盾只有两种可能:一是这套方案不可行,二是我们还差一点没发现。

按照服务端编程经验可知:3个右下折线返回原状态的情况,肯定是中间过程携带了状态,这个状态要被保持,不然将不能恢复初始状态。现在的问题是,如何保持这个状态?

我们顺着这个思路,右1下1,都是步长为1的旋转,那步长为2的旋转呢,步长为3的呢,步长为4的呢?步长为4首先不用考虑,因为步长为4已经恢复原始状态。步长为3的情况与步长为1的情况对称,所以只是步长为1情况的全反操作。现在只剩下步长为2的可能性了,我们发现,当步长为2时,状态由当前面,转移到了对立面上,同样也没能保持住状态,难道这题无解了吗?

等等,对立面?步长为2时,状态转移到了对立面上?哈哈,这不就解决了吗?由“哲学家进餐问题之对称解法”(别百度了,你找不到的,这个词是我自创的,以后心血来潮了可能会写出来),我马上想到了,状态对称,操作也对称,就可以做到不破坏状态,用在这里就是说,如果状态转移到对立面上后,操作也马上转移到对立操作上。比如说,石块向右旋转了两格,可以想像成划出了一道水平的镜面,此后上变为下,下变为上,这样,游戏中4x2的方格足矣!

图中限制很明显,最后一步只能是向上,所以,上左、上右、下左、下右这四个以左或右结束的,第一时间排除。

再由图中石块的位置,我们很容易推断出:3次下(或上)操作经对称处理后,只可能是1下2上。再结合我们对称必须做两次(不然最终状态是对称态),最后发现,符合条件的只有“右上”和“左上”,一开始把向上的状态对称为下,再把下对称为上,这样可以保持向上到终点。

下面,我们先给格子编号,方便解说:

11121314
21222324

首先,我们可以先尝试一下“右上”方式:①【11】右1到【12】,此时要做翻转,【12】右2到【14】,【14】下1到【24】,②【24】右1到【21】,再翻转,【21】右2到【23】,【23】上1到【13】,③【13】右1到【14】,【14】上1到【…】。好尴尬,无处可上,看来“右上”不行了。

好吧,我们再试一下“左上”方式:①【11】左1到【14】,翻转,【14】左2到【12】,【12】下1到【22】,②【22】左1到【21】,翻转,【21】右2到【23】,【23】上1到【13】,③【13】左1到【12】,【12】上1到【终点】。哦吼,成功了不是?

注:【11】左1到【14】这种,实际操作是【11】右3到【14】,左1是方便说法。



最后大家发现,这个游戏只要6步:

解法一:①【11】右1【12】,【12】下1到【22】,②【22】右1到【23】,【23】上1到【13】,③【13】左1到【12】,【12】上1到【终点】


都到这个份上了,“右上”真的不行吗?其实也是可以的,只是复杂些,我们发现,“右上”只差最后一步了,所以我们可以用状态平移做到:

解法二:①【11】“右3上3”到【14】,②【14】“右3下3”到【23】,③【23】“上3右3”到【12】,④【12】上1到【终点】。

所以,聪明的读者已经发现“套路”的存在了:状态平移。我们通过3个折弯,将状态平移到了我们希望的方格内。

总结起来便是:利用状态对称还原,将一道智力题转化成了套路。

发现了吗?

解法三:初始状态下,【11】下1到【21】,将【21】“左3上3”到【12】,【12】上1到【终点】,也只需12步。

所以可以看出,这个游戏解法多种多样,同样存在解法四、解法五、解法六……



城市套路深,我要回农村。农村路也滑,人心更复杂。






———————————————————— 正文分割线 ————————————————————

以为以上就是所有了吗?Too young...以下才是正文:


经这个游戏,我们可以看出,这个智力游戏的解法中,我们用到的有:基本条件、已有经验、组合,最后得出固定套路。

谨以此文,诚望大家:注重基础,积累经验,总结套路,善用组合。

现在IT界充斥着各种高大尚的技术:大数据、人工智能、区块链、云计算,等等。似乎不做这些枉为IT人,不懂这些便土的掉渣。我承认这些新技术确实有过人之处,但也希望大家能看到这些技术,也不是大的突破,更多是对已有技术的创新组合。九层之台,起于垒土,皮之不存,毛将焉附?而多数IT人,并未强大到举重若轻,万物不絮于怀的境界,所以在此真诚劝诫诸位,重视基本功,少说多做积累经验,不对技术有偏见,面向组合编程。

诚然,像小生这样,其才不扬的智商平庸之辈,在社会上还是很多的,我们羡慕天才智商,我们惊叹奇思妙想,我们自愧才薄智浅。那为何不稳扎稳打,步步为营呢?我们可以找到适合自己的方法,形成自己的套路,进而能更深层次的认知自我,提升自我,岂不美哉?






版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SG_SIQing/article/details/79946272

Android项目实战-超级壁纸

本课程包含18个小节课程,内容包括:项目演示,项目架构,Bmob后台创建表,集成Bmob到项目中,创建Bmob JavaBean,测试Bmob查询,使用MVP实现用户登录,使用MVP查询分类,使用MVP实现壁纸查询,实现底部导航,实现ViewPager页面导航,实现HomeFragment显示壁纸,实现分类展现壁纸,实现我的设置,实现系统设置,实现分类显示,显示壁纸,设置壁纸。
  • 2017年10月11日 10:45

canvas+JavaScript仿超级马里奥游戏源码分享

  • 2017年07月04日 19:00
  • 8.81MB
  • 下载

超级马里奥游戏音效素材

  • 2011年04月15日 22:26
  • 2.17MB
  • 下载

超级马里奥游戏素材 精品

  • 2010年08月27日 12:44
  • 518KB
  • 下载

新版EFT2.19.1(奥德赛1.0.6版本)

  • 2013年09月13日 18:10
  • 1.94MB
  • 下载

【cocos3.9+box2d+tileMap】制作马里奥游戏(一)

前面接触了很多cocos的基本概念,普通的类似棋牌、捕鱼等交互、动画、碰撞等较少的游戏,其实已经可以做了。 一、前因 小时候玩的马里奥,让我印象深刻,所以想尝试着去做一个简单的实现,结果查了一下相关资...
  • pur_e
  • pur_e
  • 2016-01-22 16:36:05
  • 1520

《马里奥》系列被誉为“游戏之王”的5大原因

作者:Gavin Verhey 不久前我首次接触了《Intellivision游戏集锦》。而作为曾经的任天堂红白机(NES)忠实用户,我很高兴能够再次体验那个时代的游戏。但经过几个小时之后,我得出一...
  • yacper
  • yacper
  • 2012-10-11 13:56:58
  • 2403

基于C++与Opencv制作的简单马里奥游戏

本游戏是今年夏天暑假的一项选拔的大作业,记得当时用了差不多整整十天的时间,每天编程时间都在十个小时左右。由于基础的不足,经历了很多的修改和重做。中间的不同版本记得一共有4个,第一个是完全的一整个主函数...
  • codedoctor
  • codedoctor
  • 2016-11-14 21:49:15
  • 2133

用JAVA开发 山寨版[超级马里奥]游戏

  • 2009年02月27日 09:31
  • 968KB
  • 下载

Java超级马里奥游戏

  • 2011年03月14日 08:36
  • 283KB
  • 下载
收藏助手
不良信息举报
您举报文章:玩switch游戏——马里奥·奥赛德——的发现
举报原因:
原因补充:

(最多只允许输入30个字)