如何制作“硬盒”游戏机?

作者: Shiny & Tom

来源: 中科院物理所

发布日期: 2020-05-09 10:37:14

本文详细介绍了如何制作一台“硬盒”游戏机,并通过数学原理解释了游戏“15puzzle”的解谜机制,探讨了逆序数在游戏中的应用。

前几天为了做实验拆了表弟的游戏机,表弟很不开心。为了挽回兄弟情谊,我特地为他制作了一台游戏机!表弟一定会原谅我吧~

实验器材包括所标杯、硬纸板、砂纸、胶带、剪刀、笔。实验过程先用剪刀剪出需要的小块,将小方块的边缘打磨光滑,方便后面小方块的移动。在小方块上标上数字,在底板上粘贴上边框,并用笔美化一下界面,最后把数字方块置入,就得到实体触屏式体验。

这里小编出一个谜题,大家能不能将下图恢复原来的数字顺序呢?这个经典游戏的名字叫“15puzzle”,属于单机解谜类。与之类似的游戏有华容道,推箱子,魔方等。

那么我们能不能只通过正经地操作得到问题中所指定的情形呢?答案是不行。我们可以运用小学三年级的数学知识进行解释。首先,假设空格处有一个虚拟的数字块,它的数字标记为16。然后,我们将二维排列的数字块,按行展开,降维打击成一维,就得到了一个1到16的数字排列。

接下来,我们看看移动数字块会发生什么。如下图所示,数字块移动时,必然要伴随空格16的移动。所以,每一次操作都可以看作是数字块16与相邻的某一个数字块交换位置。在数字排列中就是交换两个数字的位置。

现在,引入一个概念:逆序数。逆序数的意思是,一个数列中,如果有两个数,序号在前面的数比在后面的数大,那么这两个数就构成一个逆序对,逆序对的数目称为逆序数。举个例子,比如,1、2、3的逆序数为0,是个偶数。

交换2和3,得到1、3、2,它的逆序数为1,是个奇数。再交换1和3,得到3、1、2。它的逆序数为2,是个偶数。通过仔细地康康,可以总结出这样一个规律:数字排列每进行一次数字的位置交换,就会使排列的逆序数奇偶性发生一次改变。

有了这些前期准备,现在使用反证法进行分析。假设我们可以通过平移数字块,使数字的分布情况从下图左边变到下图右边。

注意到,上图右边的空格16此时回到了原来的位置,这表明,它向左、向上平移了多少步,就要向右、向下平移多少步。也就是说,整个过程需要进行偶数步操作。因此,逆序数的奇偶性前后不变,即,上图右边的逆序数的奇偶性应该与上图左边的相同,都为偶数。但是,上图右边展开后只有(15,14)一个逆序对,所以它的逆序数是奇数。这样就出现了矛盾,所以假设不成立,因此无法从通过常规操作从左图变到右图。

这个游戏的理论背景是群论中所讲的置换,逆序数的奇偶性对应了奇置换与偶置换。理论的分析只能告诉我们能不能做到,但没有告诉我们怎么做。我们可以像玩魔方一样,先打乱它,然后通过分析与试验总结出复原的套路。一个复原过程[2]熟人太多,不方便透露复原的套路。匿了匿了。侵删以上参考资料[1] 物理学中的群论[2] 复原过程

UUID: 16de3f26-4c16-4bb5-a422-f5283c0bf6c3

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/中科院物理所公众号-pdf2txt/2020/中科院物理所_2020-05-09_如何制作“硬盒”游戏机? | 正经玩.txt

是否为广告: 否

处理费用: 0.0041 元