Skip to content

IguanaAzul/RubiksCube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RubiksCube

This library implements a 3x3x3 rubiks cube for general purpose in python.

pip install rubiks_cube

It provides:

  • A Rubiks Cube implemented using numpy arrays
  • A function to turn the cube faces, as you'd turn a real cube
  • A function to apply a scramble as a string in the official WCA format
  • Functions to count how many colors or pieces are in the correct place

The following notations apply:

Symbol Face
U Up
R Right
F Front
L Left
D Down
B Back
Symbol Color
w White
r Red
g Green
o Orange
y Yellow
b Blue

The color_matrix is indexed like this:

                         --------------------------
                         | [4, 8]  [4, 3]  [4, 7] |
                         | [4, 4]  [4, 0]  [4, 2] |
                         | [4, 5]  [4, 1]  [4, 6] |
-----------------------------------------------------------------------------------------------------
| [5, 8]  [5, 3]  [5, 7] | [0, 8]  [0, 3]  [0, 7] | [2, 8]  [2, 3]  [2, 7] | [3, 8]  [3, 3]  [3, 7] |
| [5, 4]  [5, 0]  [5, 2] | [0, 4]  [0, 0]  [0, 2] | [2, 4]  [2, 0]  [2, 2] | [3, 4]  [3, 0]  [3, 2] |
| [5, 5]  [5, 1]  [5, 6] | [0, 5]  [0, 1]  [0, 6] | [2, 5]  [2, 1]  [2, 6] | [3, 5]  [3, 1]  [3, 6] |
-----------------------------------------------------------------------------------------------------
                         | [1, 8]  [1, 3]  [1, 7] |
                         | [1, 4]  [1, 0]  [1, 2] |
                         | [1, 5]  [1, 1]  [1, 6] |
                         --------------------------

By default filled like this:

        ---------
        | b b b |
        | b b b |
        | b b b |
---------------------------------
| o o o | w w w | r r r | y y y |
| o o o | w w w | r r r | y y y |
| o o o | w w w | r r r | y y y |
---------------------------------
        | g g g |
        | g g g |
        | g g g |
        ---------

Future implementations:

  • NxNxN cubes
  • Algorithms to solve the cubes
  • Fix scramble generator (It sometimes generates scrambles with less movements than requested)

The file ./examples/example.py contains example usages of the library

About

Implementations of a Rubiks Cube data structure

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages