三阶魔方的演示-用Python实现
相信很多人都玩过魔方,最常见的就是三阶魔方。初级的玩家在玩的时候不可避免的遇到一个问题就是玩着玩着,还原不了了。如果那教程来照着还原,一步一步下来也很费劲。我开发这个程序的目的是为了让初学者很方便的学习玩魔方的方法。魔方是有很多公式的,但是如果一味的记公式,一方面公式非常多也很难记住,另一方面失去了思考的乐趣。
要演示好一个三阶魔方也并不是很简单的。首先,魔方的旋转是多个块相关的,并且不同的旋转操作,关联的块也不同。另外,魔方的颜色信息也需要考虑。
三阶魔方有三层,每层9个块,共27个块(实际的魔方中间是个旋转支架,中间那块其实不需要考虑)。本实现为27个魔方块分别建立一个数据包。块数据包包含了该块原始状态的位置,方向,每个面的颜色,以及哪些面是外层面,哪些是隐藏在内层的面等。当执行一个操作时,操作的不同将影响哪些块需要旋转,以及绕那个轴,哪个方向旋转。另外,为了改善视觉上的体验,旋转可以瞬间完成,也可以慢动作完成,这样可以看到旋转的过程。这就要求旋转的角度不光要考虑90度的情况,还要考虑旋转到中间某个位置时该如何显示。
说到显示,由于三阶魔方是个立方体,我们观察的时候希望能看到三个面(也只能看到三个面),那么就有个视角投影的问题。我们需要将魔方整体倾斜一定的角度。学习魔方的时候我们不光要知道看得见的面,也需要知道看不见的面,因此,本设计将背面的三个面也显示在旁边,共学习者或游戏者参考。
本程序对所有的旋转操作都提供了按钮,同时还提供了脚本输入栏,学习者可以将常用的操作组合输入到脚本栏来检验一段