魔方孔乙己
在潮汕一处不知名的小镇上,有一条本地人称作网红街的步行街。每到入夜,这里便是热闹的夜市。这座小镇恰处在潮客交融的地带,镇子以东,家家户户说着潮汕话;镇子往西,人们日常讲的便是客家话。
每当夜幕缓缓降临,网红街便喧嚣起来。沿街摆满各式各样的小摊,有人支起设备唱歌直播,还有人伴着音乐起舞,这里几乎是全镇百姓夜晚休闲消遣最热闹的去处。
盛夏时节,酷暑难耐。一天傍晚,我闲来无事,便到这条网红街上闲逛。走着走着,一处摊位吸引了我的目光,四周围拢着一群叽叽喳喳的小朋友。我凑上前细看,原来是一处专卖魔方的小摊,摊上只摆着魔方这一样货品,种类却十分丰富,二阶、三阶、镜面魔方、金字塔三角魔方,琳琅满目。
摆摊的老板朝着围过来的孩子们扬声喊道:“大家不要走,不要走,看我表演二阶魔方盲拧!”
听见“二阶魔方盲拧”这几个字,我的心猛地咯噔一跳。此前很长一段时间,我也曾一心想要学会二阶魔方盲拧。我在网上翻遍视频与文字资料,耗费了不少精力钻研,可始终觉得晦涩难懂,几番下来几乎就要彻底放弃。
于是,我便跟着一众小朋友驻足,静静观看老板的这场表演。见围观的人渐渐多了,老板拿起一个已经完全还原好的二阶魔方,对着孩子们说道:“小朋友们看好了,这个魔方现在已经全部复原,接下来,我给大家表演二阶魔方盲拧。”话音落下,他将完好的二阶魔方顶层向左轻轻转了一下。
老板接着开口:“小朋友你们看清楚没有?转动之前,这个顶层四个黄色小面的编码分别是10、20、30、40。刚刚只转动了一下,原本空间位置的编码就变成40、10、20、30了。”
“接下来我们就可以给魔方做盲拧编码了。我们先来读码,先从2号空间位置读起,第一个码是10,第二个码是30,第三个码是40,之后回到前面的20,就回到了起始点,我们的读码就此完成。现在这个二阶魔方的盲拧编码就是:10、30、40。”
老板笑着说道:“编码已经编好了,现在我闭上眼睛,按照盲拧的公式与步骤,对照这组编码,就能把魔方重新还原。”
说完,他闭上双眼,双手开始操作魔方。过了一小会儿,原本被转动过的二阶魔方,果真完整复原了。
我正要抬手鼓掌,却瞥见身旁一众小朋友的脸上,写满惊奇,又带着几分怀疑。其中一个年纪稍大一点的孩子开口发问:“老板,你是不是骗人的?我看这个魔方只不过向左转了一下而已,那我们直接往右边转回去,不就复原了吗?为什么还要搞这么复杂,又是编码又是读码,折腾这么久才还原?你这样做,是不是专门骗小孩子的?”
听罢这番诘问,老板的脸颊微微涨红,局促地抿了抿嘴,带着一股无人理解的执拗,红着脸争辩起来:“小朋友,我这个是盲拧,你知不知道什么是盲拧?你懂不懂什么是盲拧?盲拧是要这样操作的。”
那小朋友并不买账,继续说道:“只要一步就能还原的,你搞得这么复杂,你这样有什么意义啊?你不是骗小孩子的是什么?走啦走啦,老板骗人的!”一群孩子就这样三三两两,嘻嘻哈哈,匆匆散开了。
一瞬间,热闹的摊位冷清下来。老板站在原地,望着四散离去的孩子们,眼底漫开一层淡淡的无力与落寞。一身实实在在的本事摆在眼前,可面对一群认知尚且有限的孩子,纵有满腹道理,竟无从诉说,无从证明。
摊位前只剩下我一个人。我心里清楚,这确确实实是一场真正的盲拧表演。诚然,只转动一步的魔方,谁都可以简单转回去复原;可能够用盲拧的思路,去复原这仅仅动了一步的魔方,考验的却是实打实的盲拧技术。
我从前自学许久都没能入门,刚刚看老板演示,反倒觉得这套方法格外直观易懂。我走上前向他提问:“老板,刚刚您只是把顶层转了一下,如果我们把完好的二阶魔方顶层转动两下,对比刚才,编码会不会发生变化?还能够完成盲拧还原吗?”
看见我留下来,还认真提出问题,老板黯淡的眼眸里瞬间亮起一丝光亮,仿佛终于遇见一个愿意听懂他的人。
他耐心向我解释:“一个原本复原好的二阶魔方,顶层转动两下之后,它的盲拧编码,和只转一下肯定是不一样的。就算转动两下,我们依旧照常读码,把读出的编码,对照二阶盲拧的公式与步骤操作,照样可以完整还原。要不要我现场表演给你看一看?”
我点头应下:“好。”
老板拿起那个复原好的魔方,将顶层向左转动了两下。 “这个魔方没有转动之前,顶层黄色面的编码是10、20、30、40。转动两下之后,顶层空间位置编码就变成了30、40、10、20。我们读完编码,按照二阶盲拧的公式和流程操作,就可以完成盲拧复原。”
话音落,他再一次闭眼操作,没过多久,魔方再次恢复成完整的样子。
我又抛出心里的疑惑:“老板,这个魔方顶层只是向左转了两下,就算我闭上眼睛,直接往右转两下,一样可以复原。我们为什么还要费这么大功夫,做编码、套公式来还原它呢?”
老板缓缓解释道:“如果魔方仅仅转动一步、两步,我们肉眼观察,就能看出来它是怎么变动的,直接反向操作,就能复原。可倘若魔方是完全随机打乱的,转动步骤错综复杂,单凭眼睛观察,根本没办法原路倒转复原。想要盲拧魔方,就要另寻办法,目前最简单实用、流传最广的方式,就是给魔方每一个小块、每一个小面进行编码。依靠这套编码,我们才能够盲拧复原任意打乱状态下的魔方。”
听完这番话,我深以为然。魔方彻底打乱之后,的确没办法靠肉眼判断反向操作。我继续问道:“老板,前段时间我在网上自学盲拧,大家做二阶魔方编码,大多用英文字母,还有人用水果、动物的名字来编码,五花八门。我从来没有见过,给每一个小面都编上两位数字的方式,您这套编码是从哪里学来的?”
老板淡淡一笑,笑意里藏着一点不为人知的自豪:“这套二阶魔方盲拧编码,是我自己原创摸索出来的。因为还没有对外推广,所以在网上自然找不到。如果你感兴趣,我可以简单给你讲讲。网上那些字母编码、水果编码,各有各的特点,但是论直观程度、记忆难度和实操性,多少会有些不足。我这套数字编码,独有它自己的优势,直观好记,上手操作也简单。”
我便在小摊边静静坐下,认真听老板讲解这套自创的二阶魔方盲拧数字编码。老板讲得十分细致,从整套编码的基础规则,到每一个角块对应的具体编码,再到二阶魔方盲拧完整的操作流程,一一娓娓道来。全部讲完之后,他还送给我一张打印好的二阶魔方盲拧数字编码表,嘱咐我:“回去之后要是感兴趣,可以照着试着练一练。”
我向老板道谢,就此告别,踏上回家的路。
回到家中,我静下心,细细研究起这份原创的数字编码。这套编码首先给二阶魔方八个空间位置编号,上层四个位置依次为1、2、3、4,下层四个位置依次为5、6、7、8;上层以左下角为起点顺时针编号,下层同样以左下角为起点顺时针编号。
其次,它预先设定了一套固定坐标系:白底黄顶,前红后橙,左蓝右绿。当魔方按照这套坐标系摆放整齐、完整复原时,每一个角块的编号,就和它所处空间位置的编号完全一致。一旦魔方被打乱,角块本身的编号,就会和当下所处位置的编号产生偏差,只有一部分或许还能重合。
这套编码最核心的部分,是给二阶魔方全部二十四个小面,编制专属的唯一编码。规则是:黄色面、白色面统一编码为0;红色面、橙色面统一编码为1;蓝色面、绿色面统一编码为2。
只单独依靠这个颜色数字,还不足以区分每一个小面,于是便把角块的位置编号放在前面,颜色编码放在后面,组合成一组两位数字的编码。
举个例子,魔方完全复原时,1号角块就在1号空间位置上,1号角块带有黄红蓝三色,组合之后,黄色面编码就是10,红色面编码就是11,蓝色面编码就是12。再比如8号角块,颜色是白红绿,白色面编码记作80,红色面记作81,绿色面记作82。依照这套规则,二十四个小面,全都可以生成独属于自己的两位数字编码。
有了完整编码,便可以开启二阶魔方盲拧的还原步骤。首先固定六号块作为定位块,把六号块按照白底蓝左橙后的方位摆放妥当,稳住整套魔方的坐标系;再将二号块当作全程的起点与终点,也就是缓冲块;八号块则作为中转块,承担中转的作用。
弄懂这些基础定义之后,第一步便是读码。依照编码规则,从20这个空间位置开始读码,依次读完错位角块的编码,正常情况下会读出六组编码,偶尔会多于六组,读完之后,把这一组组编码记在脑海当中。
后续的操作手法,和网上流传的只用一条公式完成二阶盲拧的方式大体相近,这条公式脱胎于三阶CFOP速拧里的PLL Y‑perm公式,只是省略了原式的第一步和最后一步,操作口诀为:上右下右上左下关上左下右下开上。
就这样,对照着这套编码,跟着完整的操作流程,我一连认真练习了好几天。直到今天,我终于能够独立完成二阶魔方盲拧。亲身实践之后才真切感受到,这套自创编码确实直观易懂,上手操作轻松,拥有独属于它的价值。
常听人说,大隐隐于市。这天夜里的小摊前,我见到了一位“魔方孔乙己”。身怀真才,可在匆匆过客面前,纵有一身本事,却难被理解,只剩一丝无人共情的落寞与无力,静静散落在小镇夜市喧嚣的烟火之间。