Rubik solver algorithms
Project description
Rubik Cube solving library and command line utility
How to install
$ pip install rubik_solver
How to use
As a command
As a module
>>> cube = 'wowgybwyogygybyoggrowbrgywrborwggybrbwororbwborgowryby'
>>> from rubik_solver import utils
>>> utils.solve(cube, 'Beginner')
[F', R, U', R', U, U, F2, Y, B', U, B, U, F2, Y, R', F', U, F, R, U, U, U, F2, Y, L, F, U', F', L', U, F2, Y, L', U, L, U', R, U, R', Y, U', F', U', F, Y, B, U, B', R, U, R', Y, Y, U', L', U, L, U, F, U', F', Y, Y, U2, Y2, U, R, U', R', U', F', U, F, Y, Y, U, R, U', R', U', F', U, F, Y, F, R, U, R', U', F', U2, F, R, U, R', U', F', F, R, U, R', U', F', U, U, U, U, R, U', L', U, R', U', L, R', D', R, D, R', D', R, D, U, R', D', R, D, R', D', R, D, U, U, R', D', R, D, R', D', R, D, U]
>>> utils.solve(cube, 'CFOP')
[F', R, U', R', U, U, F2, Y, B', U, B, U, F2, Y, R', F', U, F, R, U, U, U, F2, Y, L, F, U', F', L', U, F2, Y, L', U, L, U', U, F', U, F, U, F', U2, F, Y, U, Y', R', U', R, U2, R', U', R, U, R', U', R, Y, Y, B, U, B', U, F', U2, F, U, F', U2, F, Y, U2, U', R, U, R', U, R, U, R', Y, Y, R', F, R, U, R', F', R, Y, L, U', L', U, Y, Y, Y, Y, U, Y, Y, Y, Y, U, Y, Y, R, U', R, U, R, U, R, U', R', U', R2]
>>> utils.solve(cube, 'Kociemba')
[L', F, B2, R', B, R', L, B, D', F', U, B2, U, F2, D', R2, L2, U, F2, D']
Cube Notation
For a better and more in depth explanation about the cube moves notation visit https://ruwix.com/the-rubiks-cube/notation/
The configuration string of the cube corresponds to the color of the stickers according to the following figure
---------------- | 0 | 1 | 2 | ---------------- | 3 | 4 | 5 | ---------------- | 6 | 7 | 8 | ---------------- ------------------------------------------------------------- | 9 | 10 | 11 | 18 | 19 | 20 | 27 | 28 | 29 | 36 | 37 | 38 | ------------------------------------------------------------- | 12 | 13 | 14 | 21 | 22 | 23 | 30 | 31 | 32 | 39 | 40 | 41 | ------------------------------------------------------------- | 15 | 16 | 17 | 24 | 25 | 26 | 33 | 34 | 35 | 42 | 43 | 44 | ------------------------------------------------------------- ---------------- | 45 | 46 | 47 | ---------------- | 48 | 49 | 50 | ---------------- | 51 | 52 | 53 | ----------------
So, the color at position 0, corresponds to the color of the sticker BLU, the color at 1 is BU and so on …
Colors used in the implementation are:
[O]range
[B]lue
[R]ed
[W]hite
[Y]ellow
[G]reen
NOTE
Kociemba solver needs the following cubies at place:
4 (Upper center): YELLOW
13 (Left center): BLUE
22 (Front center): RED
31 (Right center): GREEN
40 (Back center): ORANGE
49 (Down center): WHITE
TODO
Improve documentation
Improve Kociemba Solver tests
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file rubik_solver-0.2.0.tar.gz
.
File metadata
- Download URL: rubik_solver-0.2.0.tar.gz
- Upload date:
- Size: 3.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b951e84cda8b36343b0e589833c1aa1a2771eae7bdb56279ec1e87870e7a7cf5 |
|
MD5 | 8017f245f9b530b1a7746a9d9433c63e |
|
BLAKE2b-256 | 17f8c80afe8baf7375b3ffec7d0a1780bd0909509ff5c0a80846c702a798df7a |