魔方吧·中文魔方俱乐部

标题: [转自SpeedSolving.com] 三阶魔方求解器HARCS(可用于速解法的步数统计) [打印本页]

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

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

  41. algsearch 1 2 --NO-ISO
  42. 加上“--NO-ISO”求解器就会自动把那些用U层转动能相互转化的情况并为一个。
复制代码
在同一路径下打开cmd.exe
输入HARCS-09e.exe ,回车
输入“load OCLS.txt algsearch 1”,回车。
最后那个数字是每个情况给出的公式数。
等待片刻,你会看到和下图类似的输出
s1-fs8.png
再按下回车,HARCS会导出一个文件,一个情况一行。
510个情况是加上了跳步和7个OCLL,并不是求解器出bug了。
最后按ctrl+c退出。

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

附件: s1-fs8.png (2021-5-28 15:49:13, 26.72 KB) / 下载次数 68
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjczNTE5fGQ5OGU2NjhkfDE3MzIyMTY3ODJ8MHww
作者: 柯哀之恋    时间: 2021-5-28 23:50:02

请问复制代码后,怎么打开,把运行打开,之后不会了
写出OCLS前后的状态,这一步具体怎么写
代码弄下后,是不是要把所有的字去掉,再运行
作者: 假木瓜    时间: 2021-5-29 00:14:25

本帖最后由 假木瓜 于 2021-5-29 00:16 编辑
柯哀之恋 发表于 2021-5-28 23:50
请问复制代码后,怎么打开,把运行打开,之后不会了
写出OCLS前后的状态,这一步具体怎么写
代码弄下后, 是不是要把所有的字去掉,再运行

(其实那些字不去掉也无所谓的)
这样写
  1. step 1
  2. movegroup 1
  3. prunedepth 1
  4. searchdepth 1
  5. epmask 0x0000ff0fffff
  6. eomask 0xffffffffffff
  7. cpmask 0x0000ff0f
  8. comask 0x0000ff0f
  9. cnmask 0xfff

  10. step 2
  11. movegroup <RLUD>
  12. prunedepth 7
  13. searchdepth 7
  14. epmask 0x0000ffffffff
  15. eomask 0xffffffffffff
  16. cpmask 0x0000ffff
  17. comask 0xffffffff
  18. cnmask 0xfff

  19. algsearch 1 2 --NO-ISO
复制代码
然后保存到"HARCS-09e.exe"所在目录。
双击HARCS-09e.exe
作者: 柯哀之恋    时间: 2021-5-29 12:43:20

假木瓜 发表于 2021-5-29 00:14
(其实那些字不去掉也无所谓的)
这样写然后保存到"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(一次性解决最后五个角块的朝向和位置)
不知道这样写对不对
360截图20210529130202974.jpg
360截图20210529130234257.jpg

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

附件: 360截图20210529130234257.jpg (2021-5-29 13:03:37, 39.29 KB) / 下载次数 56
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjczNTU1fDcyYjRmZGYxfDE3MzIyMTY3ODJ8MHww

附件: 360截图20210529130202974.jpg (2021-5-29 13:03:37, 51.72 KB) / 下载次数 57
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjczNTU0fDhmNGRkMjVifDE3MzIyMTY3ODJ8MHww
作者: 假木瓜    时间: 2021-5-30 14:21:38

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

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

  11. step 2
  12. movegroup 1
  13. #prunedepth不知道
  14. #searchdepth不知道
  15. epmask 0x0000ffffffff
  16. eomask 0x0000ffffffff
  17. cpmask 0xffffffff
  18. comask 0xffffffff
  19. cnmask 0xfff

  20. algsearch 1 2 --NO-ISO
复制代码
  1. #CFEC的CLL
  2. step 1
  3. movegroup 1
  4. prunedepth 1
  5. searchdepth 1
  6. epmask 0xffffffffffff
  7. eomask 0xffffffffffff
  8. cpmask 0x0000ffff
  9. comask 0x0000ffff
  10. cnmask 0xfff

  11. step 2
  12. movegroup 1
  13. #prunedepth不知道
  14. #searchdepth不知道
  15. epmask 0xffffffffffff
  16. eomask 0xffffffffffff
  17. cpmask 0xffffffff
  18. comask 0xffffffff
  19. cnmask 0xfff

  20. algsearch 1 2 --NO-ISO
复制代码
  1. #L5C
  2. step 1
  3. movegroup 1
  4. prunedepth 1
  5. searchdepth 1
  6. epmask 0xffffffffffff
  7. eomask 0xffffffffffff
  8. cpmask 0x00000fff
  9. comask 0x00000fff
  10. cnmask 0xfff

  11. step 2
  12. movegroup <RLUDF>
  13. #prunedepth不知道
  14. #searchdepth不知道
  15. epmask 0xffffffffffff
  16. eomask 0xffffffffffff
  17. cpmask 0xffffffff
  18. comask 0xffffffff
  19. cnmask 0xfff

  20. algsearch 1 2
复制代码

作者: 柯哀之恋    时间: 2021-5-30 17:11:19

本帖最后由 柯哀之恋 于 2021-5-30 17:23 编辑
假木瓜 发表于 2021-5-30 14:21
我现在没法用电脑,没法知道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
不是解决5个角块吗,为什么是5个零,而棱块不用管,为什么写成12个F,不应该是12个0吗

难道F是指已经 ...

发图可能会容易理解一点。
—>
—>
—>
作者: 柯哀之恋    时间: 2021-9-3 23:37:41

360截图20210528202252429.jpg

附件: 360截图20210528202252429.jpg (2021-9-3 23:37:25, 52.35 KB) / 下载次数 60
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=Mjc0NjMxfDNiNzExMGZjfDE3MzIyMTY3ODJ8MHww




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