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
魔方标记字符串:
每个面都有一个字符表示,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为红色,以此类推,即可定义所有面的单元格标志字符串。
解魔方步骤字符串包含空格字符,含义如下:
比如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*|
|************|