失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 解魔方机器人系列(一)kociemba算法

解魔方机器人系列(一)kociemba算法

时间:2023-07-24 15:10:18

相关推荐

解魔方机器人系列(一)kociemba算法

安装

apt-get install libffi-dev

apt install python-pip

pip install setuptools

pip install kociemba

使用

整个包只有一个函数solve(), 输入参数是魔方的各个面的颜色分布字符串,输出是包含解魔方的所有步骤的字符串。还有一个可选的输入参数是用于指定解魔方到特定状态的字符串。

Python下的使用示例:

>>> import kociemba

>>> kociemba.solve('DRLUUBFBRBLURRLRUBLRDDFDLFUFUFFDBRDUBRUFLLFDDBFLUBLRBD')

u"D2 R' D' F2 B D R2 D2 R' F2 D' F2 U' B2 L2 U2 D R2 U"

>>>kociemba.solve('FLBUULFFLFDURRDBUBUUDDFFBRDDBLRDRFLLRLRULFUDRRBDBBBUFL', 'BBURUDBFUFFFRRFUUFLULUFUDLRRDBBDBDBLUDDFLLRRBRLLLBRDDF')

u"R' D2 R' U2 R F2 D B2 U' R F' U R2 D L2 D' B2 R2 B2 U' B2"

当安装完解魔方包后,可以使用单独的工具运行解魔方程序:

$ kociemba <cubestring>

魔方标记字符串:

每个面都有一个字符表示,U为上表面,D为下表面,L为左表面,R为右表面,F为前表面,B为后表面。

解完的魔方每个面都是同一个颜色,所以UDLRFB可以代表每个面的颜色。假定我们让上表面U为白色,下表面D为黄色,左表面L为红色,右表面R为橙色,前表面F为蓝色,后B表面为绿色。当魔方打乱后,则下图表示的每个面的单元格颜色就可能是之前任何面的某一个颜色。

我们按照如下顺序将单元格颜色变成字符串:`U1`, `U2`, `U3`, `U4`, `U5`, `U6`, `U7`, `U8`, `U9`, `R1`, `R2`, `R3`, `R4`, `R5`, `R6`, `R7`, `R8`, `R9`, `F1`, `F2`, `F3`, `F4`, `F5`, `F6`, `F7`, `F8`, `F9`, `D1`, `D2`, `D3`, `D4`, `D5`, `D6`, `D7`, `D8`, `D9`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `L7`, `L8`, `L9`, `B1`, `B2`, `B3`, `B4`, `B5`, `B6`, `B7`, `B8`, `B9`。所以当我们输入字符串"UBL...",表示U1为白色,U2为绿色,U3为红色,以此类推,即可定义所有面的单元格标志字符串。

解魔方步骤字符串包含空格字符,含义如下:

单个字符表示所代表的面顺时针旋转90度。单个字符带一撇,表示代表的面逆时针旋转90度。单个字符带2,表示代表的面旋转180度。

比如R U R’U R U2 R’U, 表示右表面顺时针旋转90度,下表面顺时针旋转90度,右表面逆时针旋转90度,下表面顺时针旋转90度,右表面顺时针旋转90度,下表面旋转180度,右表面逆时针旋转90度,下表面顺时针旋转90度。

|************|

|*U1**U2**U3*|

|************|

|*U4**U5**U6*|

|************|

|*U7**U8**U9*|

|************|

************|************|************|************

*L1**L2**L3*|*F1**F2**F3*|*R1**R2**R3*|*B1**B2**B3*

************|************|************|************

*L4**L5**L6*|*F4**F5**F6*|*R4**R5**R6*|*B4**B5**B6*

************|************|************|************

*L7**L8**L9*|*F7**F8**F9*|*R7**R8**R9*|*B7**B8**B9*

************|************|************|************

|************|

|*D1**D2**D3*|

|************|

|*D4**D5**D6*|

|************|

|*D7**D8**D9*|

|************|

如果觉得《解魔方机器人系列(一)kociemba算法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。