codecamp

短公式法还原三阶魔方

魔方还原方法之短公式法是层先法的一种,与层先法的区别在于顶层角块和棱换的处理顺序不同。除此之外,其公式较短也是区别于层先法的特征之一。在本教程里,公式部分采用三种公式标记方法,分别是“孙氏魔方标记语言”、汉字标记法以及辛马斯特标记法(魔方通用标记方法)。步骤描述部分采用的是“新孙氏魔方公式标记法”和汉字表记法。下面,就开始本教程的讲解了。 短公式法公式一 短公式法公式一部分描述的是右手公式顺顺逆逆和左手公式逆逆顺顺,其中顺顺逆逆和逆逆顺顺各包含两个公式,它们是互逆的。即先做一次顺顺逆逆|先右(先上),再做一次顺顺逆逆|先上(先右)或先做一次逆逆顺顺|先左(先上),在做一次逆逆顺顺|先上(先左)都可以使魔方回到初始状态。 短公式法公式二 短公式法公式二部分描述的是角块位置调整公式,角块位置调整公式共两个,分别是逆逆顺|先右和逆顺顺|先右,它们依次协调操作完成角块位置调整,缺一不可。 底层十字辅助 底层十字辅助部分描述的是如何快速的将含有底面颜色的棱块调整到魔方的一个面上。在这里有一个关键的位置C2a(新孙氏魔方公式标记法,C2a表示的是第C层、第2层和第a层相交的棱块)。对于不好翻到目标位置的棱块,都可以借助C2a这个位置来完成目标块的翻转。 底层十字 底层十字部分描述的是底层十字的实现过程,和通行魔方还原方法一样,先将含有地面颜色的色块翻转对立面,再与除上、底两面的四个面的中心块颜色对齐,然后翻转来完成底层十字。 底层角块一 底层角块一部分描述的是角块的位置变化。在完成角块位置还原的过程中,先要找到目标角块正确的相对位置,然后按照图示的方法对其进行还原。那么如何找目标角块的正确的相对位置呢?我们先找含有底面颜色的角块,然后找除底面颜色两种颜色,最后把该角块转到含有这两种颜色中心块所在面相交的棱上。如果角块在底层且相对位置不正确,我们就先把转到顶层,再转到正确的相对位置上。如图中角块的位置就是相对位置正确的。 底层角块二 底层角块二部分描述的与底层角块一部分描述的基本相同。 第二层棱一 第二层棱一部分描述的是还原第二层棱块的方法的一种情况。 第二层棱二 第二层棱二部分描述的是还原第二层棱块的方法的另一种情况。 顶层十字 顶层十字部分描述的是还原顶层十字的方法。(a↻、a↺:新孙氏魔方公式标记法,分别表示第a层顺时针、逆时针旋转90°) 顶层角块方向 顶层角块方向部分描述的是调整顶层角块颜色朝向的方法,该步骤既可以在三棱换前做,也可以在三棱换后做。在这个过程中,包含着角块旋转的两种方式,分别是顺时针旋转和逆时针旋转。在调整过程中,可能会出现打乱还原好两层的中间状态,不必惊慌,将下一个需要调整的角块转到图示位置,继续做公式,然后你就会发现,当所有角块颜色方向调整好后,原先被打乱的两层也自动还原了。 三棱换 三棱换部分描述的是顶层棱调整的方法,通过该方法,我们可以还原顶层的棱。 顶层角块位置 顶层角块位置描述的是顶层角块位置的调整方法。在短公式法中,这是魔方还原的最后一步。这一步和顶层角块颜色方向调整一样,会出现中间状态,不仅如此,也需要看角块颜色和找角块目标所在的正确位置。当完成这一步时,恭喜你还原了一个三阶魔方。

孙氏魔方标记语言
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }