魔方吧·中文魔方俱乐部

标题: 【技术贴】只用一个公式的二步盲拧法 [打印本页]

作者: hubo5563    时间: 2010-9-4 18:21:21     标题: 【技术贴】只用一个公式的二步盲拧法

    一、简介:
    这里是我设计的一套盲拧方法的最简单方法,该方法是2步法,第一步首先复原棱块,第二步复原角块。
    我们知道4步法首先调整棱块或角块的方向,然后调整棱块或角块的位置使魔方复原。采用的方法是利用缓冲区的块与操作位置的块交换来完成的。并且操作要操作的块时不能影响其他位置的块的状态。本方法是二步法,调整块的位置时同时调整块的方向,使其位置和方向一次调整完成。这样,复原魔方的过程变为两步,一步调整棱块的位置和方向复原棱块,一步调整角块的位置和方向复原角块。
    我们采用的公式是调整位置的公式,并不改变块的方向,怎么就一次能把位置和方向调整好呢?这个就是本方法与其他盲拧的不同之处。
    我们知道4步法调整块的位置时,是把要调整的块set up到固定位置,然后执行块的交换或轮换,再reverse按setup原路返回,本方法也是这样。四步法调整块位置时要有规范的setup步骤,不然就会破坏已经调整好的块的方向。也就是说,setup不能随便使用操作,有些能把块调到加工位的操作要改变原来块的方向。本方法正是利用这个特性,采用不同的setup操作,来同时调整块的位置和方向的。方向不变的,使用方向不变的setup方法,方向需要变化的采用相应改变操作块方向的setup方法,最后使块达到复原的目的。
    这里介绍最简单的,就需要一个公式:
      二、所用公式:
     TR2 F2 R U R' F2 TR F' TR U
[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]TR2 F2 R U R' F2 TR F' TR U[/param]
  [param=initScrpt]CU CR' [/param]
[/java3]
    这个公式用来调角块位置和方向,也用来调奇偶的。从公式执行效果看,它交换FUL和BUL两个角块,也交换UL和DF两个边块,并且保持角块和边块的方向不变。

[ 本帖最后由 hubo5563 于 2010-9-6 19:41 编辑 ]
作者: hubo5563    时间: 2010-9-4 18:24:11

三、编码方案


     1
)基本编码




棱位置


UF


UL


UB


UR


FL


BL


BR


FR


DF


DL


DB


DR


棱颜色


蓝红


蓝白


蓝橙


蓝黄


红白


橙白


橙黄


红黄


绿红


绿白


绿橙


绿黄


棱编码


1


2


3


4


5


6


7


8


9


0


a


b




角位置:


UFL


UBL


UBR


UFR


DFL


DBL


DBR


DFR


角颜色


蓝红白


蓝橙白


蓝橙黄


蓝红黄


绿红白


绿橙白


绿橙黄


绿红黄


角编码


1


2


3


4


5


6


7


8





[ 本帖最后由 hubo5563 于 2010-9-6 10:38 编辑 ]
作者: hubo5563    时间: 2010-9-4 18:25:20

    2)操作编码
      操作编码:装入动作标记加基本编码
      棱编码为:如果需要反向加载,标志为负号;否则不加标志。
      角编码为:如果原位加载不加标志;如果需要顺时针转动加载,标志为正号;如果需要逆时针转动加载,标志为负号。
      3)操作码编码流程
          A)编棱块大循环码,从棱块缓冲区开始,定为编码位置,并假定上一编码无符号。
          B)编码位置是否缓冲块位置,如果是,循环结束,转步骤C;
      看编码位置的块应该是哪个位置的,该位置叫作下一位置,下一位置的序号为基本码,再看编码置块的块方向和上一编码符号,两者共同决定该位编码的符号,规则如下:
      如果编码位置块方向正确,上一编码无符号,基本码前无符号;
      如果编码位置块方向正确,上一编码为负号,基本码前加负号;
      如果编码位置块方向不正确,上一编码无符号,基本码前加负号;
      如果编码位置块方向不正确,上一编码为负号,基本码前无符号;
      该位编码完成,下一位置变为编码位置。
           转回步骤B。
        C)查看所有块有没有没编过的,如果都编过了,转步骤E;
        在所有没有编过的位置中,选最小号为小循环开始,如果这个位置的块就应该是在这个位置,并且方向正确,就不编这个位置码了,但该位置算编过码了,转回步骤C;
否则,该位置的位置编号为基本编码,不加符号。该位编码完成。该位置的块应该所在的位置为下一编码位置。
        D)看编码位置的块应该是哪个位置的,该位置叫作下一位置,下一位置的序号为基本码,再看编码置块的块方向和上一编码符号,两者共同决定该位编码的符号,规则如下:
如果编码位置块方向正确,上一编码无符号,基本码前无符号;
如果编码位置块方向正确,上一编码为负号,基本码前加负号;
如果编码位置块方向不正确,上一编码无符号,基本码前加负号;
如果编码位置块方向不正确,上一编码为负号,基本码前无符号;
该位编码完成。
再看编码位置是否是小循环开始位置,如果是,小循环结束,转步骤C;
否则下一位置变为编码位置。转回步骤D。
       E)棱块编码完成,检查编码个数,如果是偶数,无奇偶校正;如果是奇数,有奇偶校正。
        F)编角块码开始。如果没有奇偶校正,从缓冲区开始,如果有奇偶校正,从位置2开始,该位置定为编码位置,并假定上一编码无符号。
        G)编码位置是否缓冲块位置,如果是,大循环结束,转步骤H;
看编码位置的块应该是哪个位置的,该位置叫作下一位置,下一位置的序号为基本码,再根据块的方向编块的符号,方向正确,无符号;已经顺时针转了,为+号;已经逆时针转了为-号;再看上一编码符号,两者共同决定该位编码的操作符号,规则如下:
两个都为+,结果为-;两个都为-结果为+;两个一+一-,结果无符号;
两个其中一个无符号;结果取另一个的符号;
两个都无符号,结果也无符号。
根据上面规则定好该位编码符号,编码符号加基本码即为该位编码,该位编码完成,下一位置变为编码位置。转回步骤G。
       H)查看所有块有没有没编过的,如果都编过了,转步骤J;
否则,在所有没有编过的位置中,选最小号为小循环开始,如果这个位置的块就应该是在这个位置,并且方向正确,就不编这个位置码了,但该位置算编过码了,转回步骤H;
否则,该位置的位置编号为基本编码,不加符号。该位编码完成。该位置的块应该所在的位置为下一编码位置。
       I)看编码位置的块应该是哪个位置的,该位置叫作下一位置,下一位置的序号为基本码,再根据块的方向编块的符号,方向正确,无符号;已经顺时针转了,为+号;已经逆时针转了为-号;再看上一编码符号,两者共同决定该位编码的操作符号,规则如下:
两个都为+,结果为-;两个都为-结果为+;两个一+一-,结果无符号;
两个其中一个无符号;结果取另一个的符号;
两个都无符号,结果也无符号。
根据上面规则定好该位编码符号,编码符号加基本码即为该位编码,该位编码完成。
再看编码位置是否是小循环开始位置,如果是,小循环结束,转步骤H;
否则下一位置变为编码位置。转回步骤I。
       J)编码结束

    4)编码总结:
      1、先编楞块后编角块;
      2、先编大循环后编小循环
      3、大循环从缓冲区位置编,不编缓冲区
      4、小循环从任意没编过的位置开始,到这个位置结束,该位置开始也要编码,开始时编码无符号,最后也要编码,最后要根据规则编符号。
      5、编完楞块统计编码个数,个数是偶则角块大循环从缓冲区开始,个数是奇数则角块大循环从位置2开始,都到缓冲区结束。
      6、操作码的基本码是编码位上的块的块编码,操作码的符号是根据前一操作码的符号和该块方向符号决定。
         楞块编码规则是:
         两个有一个是负号,编码结果为负号,否则无符号。
         角块编码规则是:
         相同取反,相异变无,一个无符号,取另一个符号。两个无符号,结果无符号。
        不管棱块或角块,大循环和小循环的块的个数任意,当然有1的时候,此时,它的位置已经正确,如果方向也正确,就不参加编码了。否则要按规则编码。大循环由于起始缓冲区位置,头尾都不编,因此编码个数比循环块数少一,小循环头尾都要参加编码,因此,编码个数比循环块数多1。大循环如果只有缓冲区的一个,不管方向正确与否,都不编码,直接编小循环码。

[ 本帖最后由 hubo5563 于 2010-9-6 10:45 编辑 ]
作者: hubo5563    时间: 2010-9-4 18:27:30


       四、根据编码解魔方
        解魔方的过程分两步,第一步复原棱块。方法是根据编码的符号,采用不同的方法把要解决的棱块装到位置9,然后执行公式,再原路返回。执行公式后,位置2的棱块与位置9的棱块互换位置,位置2的棱块到位置9了,而位置9的棱块到位置2了。实际上由于执行公式前位置9的块是编码的块,因此,相当编码位置的块与位置2互换了。由于公式互换不改变互换的块的色向,反转块靠不同的装载方法做到。如果装载时也不改变色相,最终结果就不改变互换块的色向。如果装载时反装了,互换时两个块都要改变色向。
        由于采用的公式要改变UBL,UFL角块和UL以及DF棱块,其他位置的块不变。因此在复原棱块时,做装载就不能涉及UBL和UFL以及缓冲区位置UL,也就是这三个位置的东西不能动,否则将出错。同样在复原角块时,做装载就不能涉及UL和DF以及缓冲区位置UFL,也就是这三个位置的东西不能动,否则将出错。为方便,我构造了一个表,练习时看表装载,熟了就可不看表。表中很多3到4步,实际上都好理解,就是为了保护缓冲区和不能动的块。例如1号位置的块需要加载到9号位置,按最快应该直接转F2即可,但是这样将影响了UFL块,因此在转F2前先做L',转完F2再做L复原UFL位置,这样做公式操作就不会破坏UFL角块了。从表面看,装载表都不是一两步,难记,其实你实际练习就知道了,这些不用死记硬背,理解记忆就可以,只要时刻记住不破坏公式要动的其他块即可。
        解魔方的过程,就是根据操作编码,把要解决的位置调到加工位置,再做一次公式,然后按原路返回,此时要解决的块就复原了。角块也一样。
        熟练以后只需按照编码公式去做,只要编码正确,中间操作无误,最后就能将魔方复原。

魔方盲拧装载规范表.jpg
魔方盲拧装载规范表1.jpg

[ 本帖最后由 hubo5563 于 2010-9-6 18:55 编辑 ]

附件: 魔方盲拧装载规范表1.jpg (2010-9-6 11:00:44, 56.95 KB) / 下载次数 31
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTExMDc4fGVmMWI5YTVhfDE3MTczMTYwMTl8MHww

附件: 魔方盲拧装载规范表.jpg (2010-9-6 11:00:44, 81.08 KB) / 下载次数 34
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTExMDc5fGU5ZmJhYzQwfDE3MTczMTYwMTl8MHww
作者: hubo5563    时间: 2010-9-4 18:28:58

        五、实例
打乱公式为:CU CR' U2 R' U2 B' F' D B2 F2 D2 B D L' R D' U F' D' U'

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=initScrpt]CU CR' U2 R' U2 B' F' D B2 F2 D2 B D L' R D' U F' D' U' [/param]
[/java3]



先编棱块编码
      先编大循环:
  从2位置看起,2位置是红绿块,它应该是c位置上的块,并且方向相反,所以装9位置时用反向装入记为 -9
  9位置的块是绿黄块,它应该是c位置上的块,方向相反,与9位置编码方向相同,所以装c位置不需要反向装入,记为  c

  c位置的块是黄红块,它应该是8位置上的块,方向相反,与c位置的编码方向相反,所以装8位置需要反向装入,记为  -8
  8位置的块是白兰块,它应该是2位置上的块,2 位置是缓冲区,所以大循环结束。
      再编小循环, 随便找一个没有编过的块,比如1位置,作为小循环开始,循环开始都认为正向,编码1
     1位置的块是绿白色,应该是a位置上的快,方向正确,正向装入,编码记为a
     a位置的块是蓝橙色,应该是3位置的块,方向不正确,需要反向装入,编码记为-3
     3位置的块是绿橙色,应该是b位置的块,方向正确,上一个反装,这个也必须反装,编码计为-b
     b位置的块是红白色,应该是5位置的块,方向不正确,上个反装,这个就必须正装,编码记为5
     5 位置的块是红蓝色,应该是1位置的块,方向正确,上个正装,这个就必须正装,编码记为1,1是小循环开始,因此,
  至此这个小循环结束。
再编下一个小循环:
    在随便找一个没有编过的块,例如选取4位置作为小循环开始, 循环开始都认为正向,编码4
    4位置上的块为橙白色,应该是6位置的块,方向正确,上次正向装入,这次也正向装入,编码为6
    6位置上的块为橙黄色,应该是7位置的块,方向正确,上次正向装入,这次也正向装入,编码为7
    7位置上的块为蓝黄色,应该是4位置的块,方向正确,上次正向装入,这次也正向装入,编码为4
至此这个小循环结束。
到此所有棱块都编完了,棱块编码结束。
操作码为:
    -9 c -8 1 a -3 -b 5 1 4 6 7 4
    共有13个码,是个奇数,因此调完棱时应该做一次奇偶调整,就是调角那个公式。角编码应该从2位置开始。
    从第二角块编码,第二角块位置是绿橙黄色块,应该是第七位置上的块,方向是瞬时针转,第一位置认为方向正确,所以,加载位7块时,方向应该和这个块一致,应该顺时针加载所以编码为+7
    再看位7,是红蓝黄块,它应该是第4位置的块,方向是逆时针转,上个是顺时针转,这个是逆时针转,方向抵消,编码为4
    再看位置4,是红绿黄块,它应该是第8位置的块,方向顺时针转,上个是正常装入的,这个应该顺时针装入,编码为+8
    再看位置8,是蓝黄橙块,它应该是第3位置的块,方向正确,上个是顺时针装入的,这个也应该顺时针装入,编码为+3
    再看位置3,是蓝白橙块,它应该是第2位置的块,方向顺时针转,上个是顺时针装入的,两个顺时针,应该为逆时针,编码为-2
    由于做了奇偶转换,2位置应该是1位置的块,1位置的块是红绿白,它应该是5位置上的块,方向是逆时针转,上个是逆时针装入的,两个逆时针,应该为顺时针,编码为+5
    再看5位置,是红蓝白块,它应该是1位置的块,方向是顺时针转,至此大循环编码完成。
    因为还有没编过码的块,所以存在小循环,找一个没编过的块,只剩6位置了,因此6位自己构成一个小循环,它上的块如果方向正确,编码结束,但它是顺时针转,因此,先编码6,再按块编码+6
   编码结束。
角块编码为:+7 4 +8 +3 -2 +5 6 +6

整个魔方编码为:
棱块编码为: -9 c -8 1 a -3 -b 5 1 4 6 7 4
角块编码为:+7 4 +8 +3 -2 +5 6 +6

这里根据棱块编码:-9 c -8 1 a -3 -b 5 1 4 6 7 4 来复原棱块

做-9操作,复原9位置的红绿块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]D F' R F (TR2 F2 R U R' F2 TR F' TR U )F' R' F D'[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做c操作,复原c位置的黄绿块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]D'(TR2 F2 R U R' F2 TR F' TR U) D[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做-8操作,复原8位置的红黄块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]U F U' (TR2 F2 R U R' F2 TR F' TR U )U F' U'[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]



[ 本帖最后由 hubo5563 于 2010-9-6 19:03 编辑 ]
作者: hubo5563    时间: 2010-9-4 18:30:58

这里接着楼上继续根据棱块编码:-9 c -8 1 a -3 -b 5 1 4 6 7 4 来复原棱块

做1操作,小循环开始

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]L' F2 L (TR2 F2 R U R' F2 TR F' TR U )L' F2 L[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做a操作,复原a位置的绿白块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]D (TR2 F2 R U R' F2 TR F' TR U )D'[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做-3操作,复原3位置的蓝橙块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]MR D2( TR2 F2 R U R' F2 TR F' TR U) D2 MR'[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L D TR2 F2 R U R' F2 TR F' TR U D'[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做-b操作,复原b位置的橙绿块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]MR( TR2 F2 R U R' F2 TR F' TR U) MR'[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L D TR2 F2 R U R' F2 TR F' TR U D'MR D2 TR2 F2 R U R' F2 TR F' TR U D2 MR'[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做5操作,复原5位置的红白块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]U2 L D U2 (TR2 F2 R U R' F2 TR F' TR U) U2 D' L' U2[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L D TR2 F2 R U R' F2 TR F' TR U D'MR D2 TR2 F2 R U R' F2 TR F' TR U D2 MR'MR TR2 F2 R U R' F2 TR F' TR U MR'[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做1操作,复原1位置的红蓝块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]L' F2 L (TR2 F2 R U R' F2 TR F' TR U )L' F2 L[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L D TR2 F2 R U R' F2 TR F' TR U D'MR D2 TR2 F2 R U R' F2 TR F' TR U D2 MR'MR TR2 F2 R U R' F2 TR F' TR U MR'U2 L D U2 TR2 F2 R U R' F2 TR F' TR U U2 D' L' U2[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做4操作,另一小循环开始

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]R2 D' (TR2 F2 R U R' F2 TR F' TR U) D R2[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L D TR2 F2 R U R' F2 TR F' TR U D'MR D2 TR2 F2 R U R' F2 TR F' TR U D2 MR'MR TR2 F2 R U R' F2 TR F' TR U MR'U2 L D U2 TR2 F2 R U R' F2 TR F' TR U U2 D' L' U2L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做6操作,复原6位置的橙白块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]U2 L' D U2 (TR2 F2 R U R' F2 TR F' TR U) U2 D' L U2[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L D TR2 F2 R U R' F2 TR F' TR U D'MR D2 TR2 F2 R U R' F2 TR F' TR U D2 MR'MR TR2 F2 R U R' F2 TR F' TR U MR'U2 L D U2 TR2 F2 R U R' F2 TR F' TR U U2 D' L' U2L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 LR2 D' TR2 F2 R U R' F2 TR F' TR U D R2[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做7操作,复原7位置的橙黄块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]R D' (TR2 F2 R U R' F2 TR F' TR U) D R'[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L D TR2 F2 R U R' F2 TR F' TR U D'MR D2 TR2 F2 R U R' F2 TR F' TR U D2 MR'MR TR2 F2 R U R' F2 TR F' TR U MR'U2 L D U2 TR2 F2 R U R' F2 TR F' TR U U2 D' L' U2L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 LR2 D' TR2 F2 R U R' F2 TR F' TR U D R2U2 L' D U2 TR2 F2 R U R' F2 TR F' TR U U2 D' L U2[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

做4操作,复原4位置的蓝黄块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]R2 D' (TR2 F2 R U R' F2 TR F' TR U) D R2[/param]
  [param=initScrpt]D F' R F TR2 F2 R U R' F2 TR F' TR U F' R' F D'D'TR2 F2 R U R' F2 TR F' TR U D U F U' TR2 F2 R U R' F2 TR F' TR U U F' U'L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 L D TR2 F2 R U R' F2 TR F' TR U D'MR D2 TR2 F2 R U R' F2 TR F' TR U D2 MR'MR TR2 F2 R U R' F2 TR F' TR U MR'U2 L D U2 TR2 F2 R U R' F2 TR F' TR U U2 D' L' U2L' F2 L TR2 F2 R U R' F2 TR F' TR U L' F2 LR2 D' TR2 F2 R U R' F2 TR F' TR U D R2U2 L' D U2 TR2 F2 R U R' F2 TR F' TR U U2 D' L U2R D' TR2 F2 R U R' F2 TR F' TR U D R'[/param]
  [param=stickersFront]5,0,5,4,5,0,5,1,2[/param]
  [param=stickersRight]1,0,0,4,3,3,3,5,5[/param]
  [param=stickersDown]0,3,4,2,1,3,0,0,3[/param]
  [param=stickersBack]4,2,3,4,2,2,4,5,1[/param]
  [param=stickersLeft]1,1,1,3,0,5,2,4,4[/param]
  [param=stickersUp]2,1,2,5,4,2,0,1,3[/param]
[/java3]

至此棱块编码做完了,魔方棱块都复原了,下面再复原角块




[ 本帖最后由 hubo5563 于 2010-9-6 18:54 编辑 ]
作者: OCs    时间: 2010-9-4 18:31:18

看不到!如下: 后面都看不到!
作者: hubo5563    时间: 2010-9-4 18:32:17

这里接着按照角块编码:+7 4 +8 +3 -2 +5 6 +6复原角块

做+7操作复原角块DBR上的橙绿黄角块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]U R' U' (TR2 F2 R U R' F2 TR F' TR U) U R U'[/param]
  [param=stickersFront]1,5,5,5,5,5,5,5,2[/param]
  [param=stickersRight]1,3,0,3,3,3,3,3,5[/param]
  [param=stickersDown]0,1,4,1,1,1,0,1,3[/param]
  [param=stickersBack]4,2,1,2,2,2,4,2,1[/param]
  [param=stickersLeft]5,0,3,0,0,0,2,0,4[/param]
  [param=stickersUp]0,4,2,4,4,4,2,4,3[/param]
[/java3]

做4操作复原角块UFR上的红蓝黄角块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]R2 B2 (TR2 F2 R U R' F2 TR F' TR U) B2 R2[/param]
  [param=initScrpt]U R' U' TR2 F2 R U R' F2 TR F' TR U U R U'[/param]
  [param=stickersFront]1,5,5,5,5,5,5,5,2[/param]
  [param=stickersRight]1,3,0,3,3,3,3,3,5[/param]
  [param=stickersDown]0,1,4,1,1,1,0,1,3[/param]
  [param=stickersBack]4,2,1,2,2,2,4,2,1[/param]
  [param=stickersLeft]5,0,3,0,0,0,2,0,4[/param]
  [param=stickersUp]0,4,2,4,4,4,2,4,3[/param]
[/java3]

做+8操作复原角块DFR上的红绿黄角块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]R2 B (TR2 F2 R U R' F2 TR F' TR U) B' R2[/param]
  [param=initScrpt]U R' U' TR2 F2 R U R' F2 TR F' TR U U R U'R2 B2 TR2 F2 R U R' F2 TR F' TR U B2 R2[/param]
  [param=stickersFront]1,5,5,5,5,5,5,5,2[/param]
  [param=stickersRight]1,3,0,3,3,3,3,3,5[/param]
  [param=stickersDown]0,1,4,1,1,1,0,1,3[/param]
  [param=stickersBack]4,2,1,2,2,2,4,2,1[/param]
  [param=stickersLeft]5,0,3,0,0,0,2,0,4[/param]
  [param=stickersUp]0,4,2,4,4,4,2,4,3[/param]
[/java3]

做+3操作复原角块UBR上的橙蓝黄角块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]B (TR2 F2 R U R' F2 TR F' TR U) B'[/param]
  [param=initScrpt]U R' U' TR2 F2 R U R' F2 TR F' TR U U R U'R2 B2 TR2 F2 R U R' F2 TR F' TR U B2 R2R2 B TR2 F2 R U R' F2 TR F' TR U B' R2[/param]
  [param=stickersFront]1,5,5,5,5,5,5,5,2[/param]
  [param=stickersRight]1,3,0,3,3,3,3,3,5[/param]
  [param=stickersDown]0,1,4,1,1,1,0,1,3[/param]
  [param=stickersBack]4,2,1,2,2,2,4,2,1[/param]
  [param=stickersLeft]5,0,3,0,0,0,2,0,4[/param]
  [param=stickersUp]0,4,2,4,4,4,2,4,3[/param]
[/java3]

做-2操作复原角块UBL上的橙蓝白角块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]B2 R' B (TR2 F2 R U R' F2 TR F' TR U) B' R B2[/param]
  [param=initScrpt]U R' U' TR2 F2 R U R' F2 TR F' TR U U R U'R2 B2 TR2 F2 R U R' F2 TR F' TR U B2 R2R2 B TR2 F2 R U R' F2 TR F' TR U B' R2B TR2 F2 R U R' F2 TR F' TR U B'[/param]
  [param=stickersFront]1,5,5,5,5,5,5,5,2[/param]
  [param=stickersRight]1,3,0,3,3,3,3,3,5[/param]
  [param=stickersDown]0,1,4,1,1,1,0,1,3[/param]
  [param=stickersBack]4,2,1,2,2,2,4,2,1[/param]
  [param=stickersLeft]5,0,3,0,0,0,2,0,4[/param]
  [param=stickersUp]0,4,2,4,4,4,2,4,3[/param]
[/java3]

做+5操作复原角块DFL上的红绿白角块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]D' B' D (TR2 F2 R U R' F2 TR F' TR U )D' B D[/param]
  [param=initScrpt]U R' U' TR2 F2 R U R' F2 TR F' TR U U R U'R2 B2 TR2 F2 R U R' F2 TR F' TR U B2 R2R2 B TR2 F2 R U R' F2 TR F' TR U B' R2B TR2 F2 R U R' F2 TR F' TR U B'B2 R' B TR2 F2 R U R' F2 TR F' TR U B' R B2[/param]
  [param=stickersFront]1,5,5,5,5,5,5,5,2[/param]
  [param=stickersRight]1,3,0,3,3,3,3,3,5[/param]
  [param=stickersDown]0,1,4,1,1,1,0,1,3[/param]
  [param=stickersBack]4,2,1,2,2,2,4,2,1[/param]
  [param=stickersLeft]5,0,3,0,0,0,2,0,4[/param]
  [param=stickersUp]0,4,2,4,4,4,2,4,3[/param]
[/java3]

做6小循环开始

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]D' B2 D (TR2 F2 R U R' F2 TR F' TR U) D' B2 D[/param]
  [param=initScrpt]U R' U' TR2 F2 R U R' F2 TR F' TR U U R U'R2 B2 TR2 F2 R U R' F2 TR F' TR U B2 R2R2 B TR2 F2 R U R' F2 TR F' TR U B' R2B TR2 F2 R U R' F2 TR F' TR U B'B2 R' B TR2 F2 R U R' F2 TR F' TR U B' R B2D' B' D TR2 F2 R U R' F2 TR F' TR U D' B D[/param]
  [param=stickersFront]1,5,5,5,5,5,5,5,2[/param]
  [param=stickersRight]1,3,0,3,3,3,3,3,5[/param]
  [param=stickersDown]0,1,4,1,1,1,0,1,3[/param]
  [param=stickersBack]4,2,1,2,2,2,4,2,1[/param]
  [param=stickersLeft]5,0,3,0,0,0,2,0,4[/param]
  [param=stickersUp]0,4,2,4,4,4,2,4,3[/param]
[/java3]

做+6复原DBL的绿橙白角块

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]B' (TR2 F2 R U R' F2 TR F' TR U) B[/param]
  [param=initScrpt]U R' U' TR2 F2 R U R' F2 TR F' TR U U R U'R2 B2 TR2 F2 R U R' F2 TR F' TR U B2 R2R2 B TR2 F2 R U R' F2 TR F' TR U B' R2B TR2 F2 R U R' F2 TR F' TR U B'B2 R' B TR2 F2 R U R' F2 TR F' TR U B' R B2D' B' D TR2 F2 R U R' F2 TR F' TR U D' B DD' B2 D TR2 F2 R U R' F2 TR F' TR U D' B2 D[/param]
  [param=stickersFront]1,5,5,5,5,5,5,5,2[/param]
  [param=stickersRight]1,3,0,3,3,3,3,3,5[/param]
  [param=stickersDown]0,1,4,1,1,1,0,1,3[/param]
  [param=stickersBack]4,2,1,2,2,2,4,2,1[/param]
  [param=stickersLeft]5,0,3,0,0,0,2,0,4[/param]
  [param=stickersUp]0,4,2,4,4,4,2,4,3[/param]
[/java3]

编码操作都做完了,整个魔方也复原了。



[ 本帖最后由 hubo5563 于 2010-9-6 16:47 编辑 ]
作者: hubo5563    时间: 2010-9-4 18:54:00

另一个例子。                        。。

[ 本帖最后由 hubo5563 于 2010-9-6 15:48 编辑 ]
作者: Wilson007    时间: 2010-9-4 19:01:10

顶了再看......
作者: kattokid    时间: 2010-9-4 19:01:24

技术帖,留名再看。。。
作者: purple    时间: 2010-9-4 19:35:48

技术帖,支持一下lz!
作者: 勺子    时间: 2010-9-4 19:46:13

我擦~
先顶再看 前排留名~
作者: 老章    时间: 2010-9-4 20:45:29

这个方法看似简单,但其实很不好说明的,新手很难看明白。
新手入门建议是学四步法。

我目前也用的是一种奇怪的方法,速度不快,但是没有奇偶校验的问题。公式倒是很楼主很像
作者: 小强啊    时间: 2010-9-4 20:45:36

请问LZ这个方法能达到一个什么样的速度
作者: robester    时间: 2010-9-4 21:25:55

技术贴,不看了纯支持。
作者: 123wyx    时间: 2010-9-4 21:39:42

挺好,支持一下。
写得似乎比较繁,方法还是可以借鉴的。
作者: hubo5563    时间: 2010-9-4 22:47:04     标题: 回复 14# 的帖子

这个方法就是用公式少,适合那些不愿多背长公式的人学习。是一块一块地复原魔方,转数多,速度不会快。
这只是个初级的,这个方法也有高级的:
看下面的贴:http://bbs.mf8-china.com/viewthread.php?tid=60368&extra=page%3D1

[ 本帖最后由 hubo5563 于 2010-9-4 22:50 编辑 ]
作者: hubo5563    时间: 2010-9-6 20:14:19

原帖由 老章 于 2010-9-4 20:45 发表
这个方法看似简单,但其实很不好说明的,新手很难看明白。
新手入门建议是学四步法。

我目前也用的是一种奇怪的方法,速度不快,但是没有奇偶校验的问题。公式倒是很楼主很像


      我又花了1天时间修改了内容,我的方法的确不好写出来。经过这次修改,我认为说明白了。
作者: oyyq99999    时间: 2010-9-6 20:23:37

公式不顺手。。。话说这种方法我早就想过了,只是一直没时间去试试,二步不熟,超容易出错
作者: hubo5563    时间: 2010-9-7 10:08:11

原帖由 oyyq99999 于 2010-9-6 20:23 发表
公式不顺手。。。话说这种方法我早就想过了,只是一直没时间去试试,二步不熟,超容易出错


与那个公式等价的有如下:
L2 D L D' B R D R' B2 L B
B' L' B2 R D' R' B' D L' D' L2

L2 D L2 B2 D B2 D' B2 U B2 U'
U B2 U' B2 D B2 D' B2 L2 D' L2

L2 B2 R D R' B2 L U' L U
U' L' U L' B2 R D' R' B2 L2

L2 D L2 B2 D B2 U' L2 U L2 D'
D L2 U' L2 U B2 D' B2 L2 D' L2

D2 L2 F2 R' D' R F2 L' U L' U' D2
D2 U L U' L F2 R' D R F2 L2 D2

U B2 D' R2 U F2 U' R2 B2 U' L2
L2 U B2 R2 U F2 U' R2 D B2 U'

看看那个公式更好一些。或者经过改造更顺手一些。

[ 本帖最后由 hubo5563 于 2010-9-7 10:14 编辑 ]
作者: shifujun    时间: 2010-9-11 21:10:01

编码有个重要的BUG吧?第一块如果位置对了方向不对,怎么编码?它没有下一位置!
作者: hubo5563    时间: 2010-9-13 17:37:13

原帖由 shifujun 于 2010-9-11 21:10 发表
编码有个重要的BUG吧?第一块如果位置对了方向不对,怎么编码?它没有下一位置!

如果第一块位置对了,方向不对,说明这一块单独一个循环,第一块所在的循环是大循环,不需要编码,接着编小循环码即可。
例子:
打乱:
R2 B2 D' B2 F2 U' L2 U R2 F2 R2 U2 L' F' L' R D B U F2 U2
大循环第一块白兰,并且方向相反,它指向本身,按编码规律,大循环没有编码生成,直接编码小循环编码如下:
编码:1 -9 4 -5 -3 -c a b -8 -7 6 -1
复原操作:
1:L' F2 L (TR2 F2 R U R' F2 TR F' TR U) L' F2 L
-9:D F' R F (TR2 F2 R U R' F2 TR F' TR U) F' R' F D'
4:R2 D' (TR2 F2 R U R' F2 TR F' TR U) D R2
-5:U F' U' (TR2 F2 R U R' F2 TR F' TR U) U F U'
-3:MR D2 (TR2 F2 R U R' F2 TR F' TR U) D2 MR'
-c:F' R F (TR2 F2 R U R' F2 TR F' TR U) F' R' F
a:D (TR2 F2 R U R' F2 TR F' TR U) D'
b:D2 (TR2 F2 R U R' F2 TR F' TR U) D2
-8:U F U'( TR2 F2 R U R' F2 TR F' TR U) U F' U'
-7:F' R2 F (TR2 F2 R U R' F2 TR F' TR U) F' R2 F
6:U2 L' D U2 (TR2 F2 R U R' F2 TR F' TR U) U2 D' L U2
-1:MR' (TR2 F2 R U R' F2 TR F' TR U) MR

演示如下:
[java3=500,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]L' F2 L (TR2 F2 R U R' F2 TR F' TR U) L' F2 LD F' R F (TR2 F2 R U R' F2 TR F' TR U) F' R' F D'R2 D' (TR2 F2 R U R' F2 TR F' TR U) D R2 U F' U' (TR2 F2 R U R' F2 TR F' TR U) U F U' MR D2 (TR2 F2 R U R' F2 TR F' TR U) D2 MR' F' R F (TR2 F2 R U R' F2 TR F' TR U) F' R' F D (TR2 F2 R U R' F2 TR F' TR U) D' D2 (TR2 F2 R U R' F2 TR F' TR U) D2 U F U'( TR2 F2 R U R' F2 TR F' TR U) U F' U' F' R2 F (TR2 F2 R U R' F2 TR F' TR U) F' R2 F U2 L' D U2 (TR2 F2 R U R' F2 TR F' TR U) U2 D' L U2 MR' (TR2 F2 R U R' F2 TR F' TR U) MR [/param]
  [param=initScrpt]CU CR' R2 B2 D' B2 F2 U' L2 U R2 F2 R2 U2 L' F' L' R D B U F2 U2 [/param]
[/java3]

[ 本帖最后由 hubo5563 于 2010-9-13 21:04 编辑 ]
作者: 365780592    时间: 2010-11-1 09:32:05

貌似不是三阶 的。。。。。呜呜。。。。。。。。。。。
作者: dangerxxxx    时间: 2010-11-1 09:36:42

楼上顶帖不看贴吗.......
貌似有点复杂
作者: fengtian99    时间: 2010-12-8 23:30:55

呃,先把帖子回了,盲拧区好帖也很多呃…
作者: 丘比特    时间: 2010-12-8 23:50:17

额  为什么没看懂…
作者: 铀—235    时间: 2010-12-10 18:22:37

顶!!!!!!!!!!
作者: zxy6350479    时间: 2011-1-25 07:46:22

嗯 需要看 好多次 才能明白 天天看看
作者: 江湖新手    时间: 2011-3-12 08:53:49

看不懂!!!!!!!!!
作者: 123698547    时间: 2011-5-26 19:18:53

先看再顶




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2