【捣蛋猪新创Unity/电路】开造之前:魔方
游戏作者:原野与森林
今天我带着大家手搓魔方
首先我们要先认识魔方

众所周知,魔方可以看成一个正方体,有六个面
一般认为,蓝色是前面,红色是右面,黄色是上面(可以推得蓝色的反面绿色是后面,同理,橙色是左边,白色是下面)
网络上通用的魔方的公式中
F代表Front 前面,前面顺时针转90度
U代表Up 上面,上面顺时针转90度
R代表Right 右面,右面顺时针转90度
B Behind,D Down,L Left 以此类推
而F'(右上角加了“ ' ",这个代表逆时针)

这里说一下,魔方并没有某些人想象那么难,很多人魔方小学三四年级就会了(正常智商水平)。UP主的魔方是六年级学会的,大概用了两天。
其他关于魔方最基础的内容,请去某度搜索或去某乎提问(这里不在多扯)

接下来的问题是魔方该怎么表示
面的排列:
作为一个三维的正六面体的魔方,在二维中应该

(熟悉真正的魔方后,这样转换其实很顺眼,至少是最顺眼的方式)
块的颜色:
在捣蛋猪,狭义上可以认为有颜色的只有两种东西:光组件和染色框(染色框生成器)
使用光组件是毋庸置疑的,因为它延迟低,占地小,但是

不过

目测,五个光组件就能带来不错的视觉效果(不错的视觉效果:指看起来不是很淡)
但是作为一个二维游戏,以常规方式放这样的五个光组件是无法实现的,但我们有这个

显示问题解决了.jpg

用0和1表示魔方的每个面:

规律指:前后面第一个数为零,上下面第二个数为零,左右面第三个数为零,后面下面左面最后一个数为零

正文开始
我们可以看到,一个魔方,「他先正面转一下,再右面转一下」和「先右面转一下,再正面转一下」所得到的结果是不一样的,所以如果我们用电路实现单靠组合逻辑门是不行的,需要加上时序电路(关于时序电路是什么也请去某度搜索)
所以

上面这张图,我花费了很长时间,中间经历了很多失败,才逐渐了解的魔方的一些规律,根据这些规律画出了棱块的表示,角块表示的研究失败后,几经波折,发现角块可以用跟它同面的相邻的两个棱块表示,再多次研究后画出来这张图。
希望各位观众老爷可以给我点个赞,赞破20马上开造魔方
上面的图,第一个数字(棱块,下同)代表转前面或后面是否对该块会有影响

第二个数字代表转上面或下面是否对该块有影响

第三个数字代表转左面或右面是否对该块有影响

以转动正面为例,画出魔方的时序电路的卡诺图(也许画的不对,大佬们可以在评论区指点)



当然我要说一下,每个颜色都需要配一个这样的电路
举例:

顺时针转动正面,使红块和绿块从原位置(分别记做R0,G0),移动到末位置(分别记做R1,G1)
首先,分析一下。一开始,红色对应R0位置的信号是1(其他颜色该位置的型号是零,绿同);点击F按钮后,红色R0位置的信号应变为0,R1位置的信号变为1(绿仍同),结合卡诺图,这样的效果可以实现(喜)
(应该是可以实现)
本文内容基本到此结束
但up要招个标()
如果真造的出来魔方,不管一个格子是8×8大还是32×32大,靠点击一格大小的高电平来《转动》魔方是不现实的,所以我们要造一个鼠标。

还是南瓜,虚化蛋,接口,懂?
具体要求:请使用稳定的驱动(不能用涡喷,别问我为什么)造一个可以悬停,难以翻转,可以利用开合部分承重伞来调整飞行速度,操作简单,结构精巧的飞行器
我随后会在动态里面发内嵌电路,请大家踊跃参与
完结撒花!