假木瓜 发表于 2021-5-28 16:04:38

[转自SpeedSolving.com] 三阶魔方求解器HARCS(可用于速解法的步数统计)

本帖最后由 假木瓜 于 2021-5-29 00:02 编辑

HARCS是Here's A Replacement Cube Solver的缩写

原帖地址:https://www.speedsolving.com/threads/harcs-jarcs-replacement-cube-solver.63241/
感谢mDiPalma开发了HARCS(https://www.speedsolving.com/members/mdipalma.13488/)
感谢Tapio Vierros开发了rlutil。(https://github.com/tapio/)

感谢cube_master帮我上传了附件。HARCS-09e.zip

下面我以OCLS为例,演示如何进行步数统计。我的电脑太慢了,所以只算允许<RLUD>的情况下的步数。
OCLS的作用是在棱已翻正的情况下同时解决最后一组F2L和角块色向。

解压HARCS-09e.zip
移动到那个目录下
打开文件夹HARCS-09e
新建一个OCLS.txt,写入以下内容
(移动版页面无法正常显示)不是以HARCS支持的命令开头的行会被忽略
写出OCLS前后的状态
step 1
#step [步骤名]
movegroup 1
#设置搜索要使用哪些转动
#movegroup [集合]
#1~10是作者预先定好的
#1=<UDFBRL>, 2=<UDFBRLMr>, 3=<RUMr>, 4=<RUD>, 5=<RULD>, 6=<FURB>, 7=<MU>, 8=<U>, 9=<MUD>, 10=<LUD>
#例:movegroup <RLUDFBrludfbMES> 不要真的这么写,会很慢的。
prunedepth 1
剪枝
调成1是因为我们不需要算OCLS前面的步骤
searchdepth 1
搜索深度
epmask 0x0000ff0fffff
#epmask命令后面是一个十六进制数,表示需要被解决位置的棱块。
顺序为 UB UR UF UL BL BR FR FL DB DR DF DL
要解决就写f,反之写0
eomask 0xffffffffffff
#写出要解决哪些棱块的色向,顺序同epmask命令。
cpmask 0x0000ff0f
#写出要解决哪些角块的位置
#顺序为 ULB UBR URF UFL DBL DRB DFR DLF
comask 0x0000ff0f
#写出要解决哪些角块的色向,顺序同cpmask命令。
cnmask 0xfff
魔方摆放。

step 2
movegroup <RLUD>
要知道最少步数,请改为“movegroup 1”
prunedepth 7
#prunedepth调大可提高搜索速度,但是调太大会卡死
searchdepth 7
#prunedepth和searchdepth的和应当大于等于该步骤的步数上界,但是调太大会卡死。
epmask 0x0000ffffffff
eomask 0xffffffffffff
cpmask 0x0000ffff
comask 0xffffffff
cnmask 0xfff

algsearch 1 2 --NO-ISO
加上“--NO-ISO”求解器就会自动把那些用U层转动能相互转化的情况并为一个。
在同一路径下打开cmd.exe
输入HARCS-09e.exe ,回车
输入“load OCLS.txt algsearch 1”,回车。
最后那个数字是每个情况给出的公式数。
等待片刻,你会看到和下图类似的输出

再按下回车,HARCS会导出一个文件,一个情况一行。
510个情况是加上了跳步和7个OCLL,并不是求解器出bug了。
最后按ctrl+c退出。

其它功能可通过“custom_methods_README.txt”文件、help命令、help2命令了解。

柯哀之恋 发表于 2021-5-28 23:50:02

请问复制代码后,怎么打开,把运行打开,之后不会了
写出OCLS前后的状态,这一步具体怎么写
代码弄下后,是不是要把所有的字去掉,再运行

假木瓜 发表于 2021-5-29 00:14:25

本帖最后由 假木瓜 于 2021-5-29 00:16 编辑

柯哀之恋 发表于 2021-5-28 23:50 static/image/common/back.gif
请问复制代码后,怎么打开,把运行打开,之后不会了
写出OCLS前后的状态,这一步具体怎么写
代码弄下后, 是不是要把所有的字去掉,再运行
(其实那些字不去掉也无所谓的)
这样写step 1
movegroup 1
prunedepth 1
searchdepth 1
epmask 0x0000ff0fffff
eomask 0xffffffffffff
cpmask 0x0000ff0f
comask 0x0000ff0f
cnmask 0xfff

step 2
movegroup <RLUD>
prunedepth 7
searchdepth 7
epmask 0x0000ffffffff
eomask 0xffffffffffff
cpmask 0x0000ffff
comask 0xffffffff
cnmask 0xfff

algsearch 1 2 --NO-ISO然后保存到"HARCS-09e.exe"所在目录。
双击HARCS-09e.exe

柯哀之恋 发表于 2021-5-29 12:43:20

假木瓜 发表于 2021-5-29 00:14 static/image/common/back.gif
(其实那些字不去掉也无所谓的)
这样写然后保存到"HARCS-09e.exe"所在目录。
双击HARCS-09e.exe

还有一个问题,分别写出EO,EP,CO,CP,要解决写F,反之写0,那0究竟表示是对了,还是不管对错无所谓呢,举例说明一下,如果要算CFCE和CFEC的公式,对于CFCE的CLL公式,是不用管棱块的朝向位置如何如何,只需要把角块朝向位置一次解决就行,但是,对于CFEC的CLL公式来说,前一步已经把所有的棱块朝向和位置调对了,这时候的CLL公式,必须是保持前面都不会被打乱的前提下,新的CLL公式,跟CFCE的CLL公式可是不一样的

如此,这个程序能分别表示这两种不一样的CLL公式吗?

柯哀之恋 发表于 2021-5-29 13:03:45

本帖最后由 柯哀之恋 于 2021-5-29 13:05 编辑

算L5C(一次性解决最后五个角块的朝向和位置)
不知道这样写对不对



好像没有算出任何的公式呀,不知道哪里出错了,请看看

假木瓜 发表于 2021-5-30 14:21:38

柯哀之恋 发表于 2021-5-29 13:03 static/image/common/back.gif
算L5C(一次性解决最后五个角块的朝向和位置)
不知道这样写对不对



我现在没法用电脑,没法知道prunedepth和searchdepth怎么设,我先写一部分吧,等能用电脑了再来编辑。#CFCE的CLL
step 1
movegroup 1
prunedepth 1
searchdepth 1
epmask 0x0000ffffffff
eomask 0x0000ffffffff
cpmask 0x0000ffff
comask 0x0000ffff
cnmask 0xfff

step 2
movegroup 1
#prunedepth不知道
#searchdepth不知道
epmask 0x0000ffffffff
eomask 0x0000ffffffff
cpmask 0xffffffff
comask 0xffffffff
cnmask 0xfff

algsearch 1 2 --NO-ISO
#CFEC的CLL
step 1
movegroup 1
prunedepth 1
searchdepth 1
epmask 0xffffffffffff
eomask 0xffffffffffff
cpmask 0x0000ffff
comask 0x0000ffff
cnmask 0xfff

step 2
movegroup 1
#prunedepth不知道
#searchdepth不知道
epmask 0xffffffffffff
eomask 0xffffffffffff
cpmask 0xffffffff
comask 0xffffffff
cnmask 0xfff

algsearch 1 2 --NO-ISO
#L5C
step 1
movegroup 1
prunedepth 1
searchdepth 1
epmask 0xffffffffffff
eomask 0xffffffffffff
cpmask 0x00000fff
comask 0x00000fff
cnmask 0xfff

step 2
movegroup <RLUDF>
#prunedepth不知道
#searchdepth不知道
epmask 0xffffffffffff
eomask 0xffffffffffff
cpmask 0xffffffff
comask 0xffffffff
cnmask 0xfff

algsearch 1 2

柯哀之恋 发表于 2021-5-30 17:11:19

本帖最后由 柯哀之恋 于 2021-5-30 17:23 编辑

假木瓜 发表于 2021-5-30 14:21 static/image/common/back.gif
我现在没法用电脑,没法知道prunedepth和searchdepth怎么设,我先写一部分吧,等能用电脑了再来编辑。

不是解决5个角块吗,为什么是5个零,而棱块不用管,为什么写成12个F,不应该是12个0吗

难道F是指已经解决的块吗,还是将要去解决的块?

还有step 1和step 2的代码都不一样,step 1的是cpmask 0x00000fff,step 2却是cpmask 0xffffffff,上面的cfce和cfec也是step 1和step 2的代码,这是什么意思,不太明白

zhangaicai 发表于 2021-6-2 06:59:43

柯哀之恋 发表于 2021-5-30 17:11 static/image/common/back.gif
不是解决5个角块吗,为什么是5个零,而棱块不用管,为什么写成12个F,不应该是12个0吗

难道F是指已经 ...

发图可能会容易理解一点。
http://cube.rider.biz/visualcube.php?fmt=svg&size=120&pzl=3&fd=nnnnunnnnnnnrrrrrrnnnffffff—>http://cube.rider.biz/visualcube.php?fmt=svg&size=120&pzl=3&fd=ununununurnrrrrrrrfnfffffff
http://cube.rider.biz/visualcube.php?fmt=svg&size=120&pzl=3&fd=nunuuununnrnrrrrrrnfnffffff—>http://cube.rider.biz/visualcube.php?fmt=svg&size=120&pzl=3
http://cube.rider.biz/visualcube.php?fmt=svg&size=120&pzl=3&r=y-21x-34&fd=nunuuununnrnrrrrrrnfnffffffddddddnddnlnlllnll—>http://cube.rider.biz/visualcube.php?fmt=svg&size=120&pzl=3&r=y-21x-34

柯哀之恋 发表于 2021-9-3 23:37:41

页: [1]
查看完整版本: [转自SpeedSolving.com] 三阶魔方求解器HARCS(可用于速解法的步数统计)