super-rubik-cube


Namesuper-rubik-cube JSON
Version 1.0.4 PyPI version JSON
download
home_pageNone
SummaryLibrary for simulating rubik's cubes of different sizes (N x N), and for solving 2 x 2 and 3 x 3 cubes with kociemba algorithm.
upload_time2024-05-05 12:03:54
maintainerNone
docs_urlNone
authorIlmi28
requires_pythonNone
licenseGPL-3.0
keywords python rubik cube solve 3x3 2x2 rubik's cube pocket cube nxn kociemba supercube solver
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Description
Library for Rubik's Cube manipulation. Creator and customizer for cubes of any size, and solver for 2x2 and 3x3 cubes (Herbert Kociemba's algorithms)

# Installation

```
pip install super-rubik-cube
```

# Usage
> Note: 2D number cube grid may look a bit weird in output examples, but in console everything looks fine.
## Creating instance of cube
You can create Rubik's cube, Pocket cube and NxN cube, where N means positive number.
```
import supercube

rubiks_cube = supercube.RubiksCube() # creates 3X3 cube
pocket_cube = supercube.PocketCube() # creates 2x2 cube
n_cube = supercube.NCube(7) # creates NxN cube (in this case N is 7)

rubiks_cube.show()
rubiks_cube.show(colors=True)

pocket_cube.show()
pocket_cube.show(colors=True)

n_cube.show()
n_cube.show(colors=True)
```
Output:
```
             ┌────────────┐
             │  1   2   3 │
             │  4   5   6 │
             │  7   8   9 │
┌────────────┼────────────┼────────────┬────────────┐
│ 10  11  12 │ 19  20  21 │ 28  29  30 │ 37  38  39 │ 
│ 13  14  15 │ 22  23  24 │ 31  32  33 │ 40  41  42 │ 
│ 16  17  18 │ 25  26  27 │ 34  35  36 │ 43  44  45 │ 
└────────────┼────────────┼────────────┴────────────┘
             │ 46  47  48 │
             │ 49  50  51 │
             │ 52  53  54 │
             └────────────┘
⬛⬛⬛ 🟪🟪🟪
⬛⬛⬛ 🟪🟪🟪
⬛⬛⬛ 🟪🟪🟪

🟧🟧🟧 🟩🟩🟩 🟥🟥🟥 🟦🟦🟦 
🟧🟧🟧 🟩🟩🟩 🟥🟥🟥 🟦🟦🟦 
🟧🟧🟧 🟩🟩🟩 🟥🟥🟥 🟦🟦🟦 

⬛⬛⬛ 🟨🟨🟨
⬛⬛⬛ 🟨🟨🟨
⬛⬛⬛ 🟨🟨🟨


         ┌────────┐
         │  1   2 │
         │  3   4 │
┌────────┼────────┼────────┬────────┐
│  5   6 │  9  10 │ 13  14 │ 17  18 │ 
│  7   8 │ 11  12 │ 15  16 │ 19  20 │ 
└────────┼────────┼────────┴────────┘
         │ 21  22 │
         │ 23  24 │
         └────────┘
⬛⬛ 🟪🟪
⬛⬛ 🟪🟪

🟧🟧 🟩🟩 🟥🟥 🟦🟦 
🟧🟧 🟩🟩 🟥🟥 🟦🟦 

⬛⬛ 🟨🟨
⬛⬛ 🟨🟨


                                    ┌───────────────────────────────────┐
                                    │   1    2    3    4    5    6    7 │
                                    │   8    9   10   11   12   13   14 │
                                    │  15   16   17   18   19   20   21 │
                                    │  22   23   24   25   26   27   28 │
                                    │  29   30   31   32   33   34   35 │
                                    │  36   37   38   39   40   41   42 │
                                    │  43   44   45   46   47   48   49 │
┌───────────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┬───────────────────────────────────┐
│  50   51   52   53   54   55   56 │  99  100  101  102  103  104  105 │ 148  149  150  151  152  153  154 │ 197  198  199  200  201  202  203 │ 
│  57   58   59   60   61   62   63 │ 106  107  108  109  110  111  112 │ 155  156  157  158  159  160  161 │ 204  205  206  207  208  209  210 │ 
│  64   65   66   67   68   69   70 │ 113  114  115  116  117  118  119 │ 162  163  164  165  166  167  168 │ 211  212  213  214  215  216  217 │ 
│  71   72   73   74   75   76   77 │ 120  121  122  123  124  125  126 │ 169  170  171  172  173  174  175 │ 218  219  220  221  222  223  224 │ 
│  78   79   80   81   82   83   84 │ 127  128  129  130  131  132  133 │ 176  177  178  179  180  181  182 │ 225  226  227  228  229  230  231 │ 
│  85   86   87   88   89   90   91 │ 134  135  136  137  138  139  140 │ 183  184  185  186  187  188  189 │ 232  233  234  235  236  237  238 │ 
│  92   93   94   95   96   97   98 │ 141  142  143  144  145  146  147 │ 190  191  192  193  194  195  196 │ 239  240  241  242  243  244  245 │ 
└───────────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┴───────────────────────────────────┘
                                    │ 246  247  248  249  250  251  252 │
                                    │ 253  254  255  256  257  258  259 │
                                    │ 260  261  262  263  264  265  266 │
                                    │ 267  268  269  270  271  272  273 │
                                    │ 274  275  276  277  278  279  280 │
                                    │ 281  282  283  284  285  286  287 │
                                    │ 288  289  290  291  292  293  294 │
                                    └───────────────────────────────────┘
⬛⬛⬛⬛⬛⬛⬛ 🟪🟪🟪🟪🟪🟪🟪
⬛⬛⬛⬛⬛⬛⬛ 🟪🟪🟪🟪🟪🟪🟪
⬛⬛⬛⬛⬛⬛⬛ 🟪🟪🟪🟪🟪🟪🟪
⬛⬛⬛⬛⬛⬛⬛ 🟪🟪🟪🟪🟪🟪🟪
⬛⬛⬛⬛⬛⬛⬛ 🟪🟪🟪🟪🟪🟪🟪
⬛⬛⬛⬛⬛⬛⬛ 🟪🟪🟪🟪🟪🟪🟪
⬛⬛⬛⬛⬛⬛⬛ 🟪🟪🟪🟪🟪🟪🟪

🟧🟧🟧🟧🟧🟧🟧 🟩🟩🟩🟩🟩🟩🟩 🟥🟥🟥🟥🟥🟥🟥 🟦🟦🟦🟦🟦🟦🟦 
🟧🟧🟧🟧🟧🟧🟧 🟩🟩🟩🟩🟩🟩🟩 🟥🟥🟥🟥🟥🟥🟥 🟦🟦🟦🟦🟦🟦🟦 
🟧🟧🟧🟧🟧🟧🟧 🟩🟩🟩🟩🟩🟩🟩 🟥🟥🟥🟥🟥🟥🟥 🟦🟦🟦🟦🟦🟦🟦 
🟧🟧🟧🟧🟧🟧🟧 🟩🟩🟩🟩🟩🟩🟩 🟥🟥🟥🟥🟥🟥🟥 🟦🟦🟦🟦🟦🟦🟦 
🟧🟧🟧🟧🟧🟧🟧 🟩🟩🟩🟩🟩🟩🟩 🟥🟥🟥🟥🟥🟥🟥 🟦🟦🟦🟦🟦🟦🟦 
🟧🟧🟧🟧🟧🟧🟧 🟩🟩🟩🟩🟩🟩🟩 🟥🟥🟥🟥🟥🟥🟥 🟦🟦🟦🟦🟦🟦🟦 
🟧🟧🟧🟧🟧🟧🟧 🟩🟩🟩🟩🟩🟩🟩 🟥🟥🟥🟥🟥🟥🟥 🟦🟦🟦🟦🟦🟦🟦 

⬛⬛⬛⬛⬛⬛⬛ 🟨🟨🟨🟨🟨🟨🟨
⬛⬛⬛⬛⬛⬛⬛ 🟨🟨🟨🟨🟨🟨🟨
⬛⬛⬛⬛⬛⬛⬛ 🟨🟨🟨🟨🟨🟨🟨
⬛⬛⬛⬛⬛⬛⬛ 🟨🟨🟨🟨🟨🟨🟨
⬛⬛⬛⬛⬛⬛⬛ 🟨🟨🟨🟨🟨🟨🟨
⬛⬛⬛⬛⬛⬛⬛ 🟨🟨🟨🟨🟨🟨🟨
⬛⬛⬛⬛⬛⬛⬛ 🟨🟨🟨🟨🟨🟨🟨
```
You can also define your own state (number of elements of specific colors is not limited)
```
pocket_cube.define_state("RYWRRWOBGWOBWRRGGGGGGGGG")
pocket_cube.show()
pocket_cube.show(colors=True)
```
Output:
```
         ┌────────┐
         │ 13  21 │
         │  1  14 │
┌────────┼────────┼────────┬────────┐
│ 15   2 │  9   3 │  4  16 │ 11  12 │ 
│  5  17 │  6  18 │ 16  10 │ 12  12 │ 
└────────┼────────┼────────┴────────┘
         │ 12  12 │
         │ 12  12 │
         └────────┘
⬛⬛ 🟥🟨
⬛⬛ 🟪🟥

🟥🟪 🟩🟪 🟪🟥 🟩🟩 
🟧🟦 🟧🟦 🟥🟩 🟩🟩 

⬛⬛ 🟩🟩
⬛⬛ 🟩🟩

```
You can get your current state using method `get_state`, the return will be 3d array.
```
print(rubiks_cube.get_state())
```
Output:
```
[[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]], [[19, 20, 21], [22, 23, 24], [25, 26, 27]], [[28, 29, 30], [31, 32, 33], [34, 35, 36]], [[37, 38, 39], [40, 41, 42], [43, 44, 45]], [[46, 47, 48], [49, 50, 51], [52, 53, 54]]]
```
## Moves
### Basic moves
You can move cube using method `move`
```
rubiks_cube.move("L B' F2 U R2 F L2 U B2 R2 F D L' D L' D2 R' U' B2 F' L R'")
rubiks_cube.show()
```
Output:
```
             ┌────────────┐
             │ 30   4  36 │
             │ 31   5  38 │
             │ 27  49  10 │
┌────────────┼────────────┼────────────┬────────────┐
│  3  24  48 │ 34  17   1 │ 39   2  54 │ 43  11  37 │ 
│ 26  14  40 │ 33  23  53 │ 44  32  51 │ 35  41  47 │ 
│ 46  22  52 │ 45  42   7 │ 19   8   9 │ 28   6  25 │ 
└────────────┼────────────┼────────────┴────────────┘
             │ 16  13  12 │
             │ 15  50  20 │
             │ 18  29  21 │
             └────────────┘

```
### Advanced moves
Advanced moves are also supported. For each basic move there are:

* wide moves (e.g. Fw, 4Fw', 5Fw2) - for wide move default value is 2 (when there is no number before move)
* specific layer moves (e.g 3U, 5D')

```
n_cube.move("3Bw 3R2 D' 3Bw 2Rw' 3Fw R2 3Rw' 2B' 3R 2Fw2 3U2 L' 2Dw B")
n_cube.show()

```
Output:
```
                                    ┌───────────────────────────────────┐
                                    │  43   36  176  267  260  191  190 │
                                    │ 140  160  167  174  283  188  195 │
                                    │  54  279  278  277  276   40  101 │
                                    │ 126   23   24   25  271   72  102 │
                                    │  52   89   82   75   68   16  231 │
                                    │  51  107   65  158  157  156  155 │
                                    │  50  106   64  151  150  149  148 │
┌───────────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┬───────────────────────────────────┐
│  99  183   29  169   15    8    1 │ 203   63  217   28   35   42   49 │ 105  112   78   46   45  287  147 │ 252  259   96   95  133   55   56 │ 
│  93  184  285  170  110  237  244 │ 289   62   30   27   34   41   48 │ 104  111   79   39   38  286  146 │ 251  258   59  125   61  139  281 │ 
│ 290  181   31   26   33  118  119 │ 162  132  117  124  131  138  145 │ 250   12  264   67  180  177   47 │ 103  185  215  222  229  236  243 │ 
│ 291   60   32   74   81   88  144 │ 249  223  116  123  130  137  193 │ 273  272  171  172  269  284   71 │ 224  186  214  221  228  235  242 │ 
│ 292  187   80  173  166  159  152 │  21  216  115  122  129  136  192 │ 266  265  178  179  262  208  143 │ 248  255  213  220  227  234  241 │ 
│ 293   58  257  207  206  205  153 │  14   13   87   11  275  282  142 │ 247  209  114  121  128  135   44 │ 100   86  212  219  226  233  240 │ 
│ 288   57  201  200  199  198  294 │ 196  189   94  175  168  161  154 │   7  202  113  120  127  134  141 │ 246  253  280   22  225   85   92 │ 
└───────────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┴───────────────────────────────────┘
                                    │ 239  232  274  218  211  204  197 │
                                    │   6  254   20  256  163    9    2 │
                                    │   5  261   19  263  164   69   70 │
                                    │   4  268   18  270  165   76   77 │
                                    │   3   10   17   73   66   83   84 │
                                    │ 210   37  230  109  108   90   91 │
                                    │ 245  238  182   53  194   97   98 │
                                    └───────────────────────────────────┘
```
## Scrambling
You can scramble cube by using method `scramble(number_of_moves=30)`(default value is 30)
```
print(rubiks_cube.scramble())
rubiks_cube.show()
rubiks_cube.show(colors=True)
```
Output:
```
B' F' D' B2 F' R' F' L B2 B2 U F D' D2 F' U2 F' R R U' B U L D2 U2 R' U' D D2 F2 
             ┌────────────┐
             │ 36  51  21 │
             │ 26   5  44 │
             │ 10  33  19 │
┌────────────┼────────────┼────────────┬────────────┐
│ 43  47   1 │ 39  40   7 │ 12  53  28 │  9  35  54 │ 
│ 42  14   8 │ 20  23  49 │ 17  32  38 │  2  41  13 │ 
│ 18  15  16 │ 52  24  48 │ 27   4   3 │ 37   6  46 │ 
└────────────┼────────────┼────────────┴────────────┘
             │ 45  31  34 │
             │ 22  50  11 │
             │ 25  29  30 │
             └────────────┘
⬛⬛⬛ 🟥🟨🟩
⬛⬛⬛ 🟩🟪🟦
⬛⬛⬛ 🟧🟥🟩

🟦🟨🟪 🟦🟦🟪 🟧🟨🟥 🟪🟥🟨 
🟦🟧🟪 🟩🟩🟨 🟧🟥🟦 🟪🟦🟧 
🟧🟧🟧 🟨🟩🟨 🟩🟪🟪 🟦🟪🟨 

⬛⬛⬛ 🟦🟥🟥
⬛⬛⬛ 🟩🟨🟧
⬛⬛⬛ 🟩🟥🟥
```
You can also scramble big cubes 
```
print(n_cube.scramble())
n_cube.show()
n_cube.show(colors=True)
```
Output:
```
U' 2Bw 2Rw2 3Uw 3L 2B2 3Dw2 2B 2Bw' 2L 3Fw' D2 2Rw 3R 2Rw' 2Bw 2R 3Rw' 2Fw' 3Fw 3B2 L2 2F' 3R2 R' 3Uw2 2Bw 3F' B' B 
                                    ┌───────────────────────────────────┐
                                    │ 294  134  292   71  113    6  197 │
                                    │ 289  205   59   11   87  254  161 │
                                    │  54  181  215   32   68  138  119 │
                                    │  46  174  271   25  214  137  267 │
                                    │ 248  118  264  171  227  257  211 │
                                    │ 195   90  208   27   20   13  253 │
                                    │  98  104   84    4  217    2  148 │
┌───────────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┬───────────────────────────────────┐
│ 196  244   29  102  143  287  246 │ 141   48  127  200   64  202   49 │ 105   97  168   95  162  204    7 │ 154  198   70  224  241   91  239 │ 
│ 140  237   89   88  110  282  281 │  93   41   30   60   65   62  293 │ 240  233   69  158  114  286  247 │ 142    9  128  125  185  184  183 │ 
│ 133  212  166   73  117  108   52 │  15  136  229   26   80  206    3 │ 201   61  164  165   82  275  199 │   5   83  262  222  178  177  176 │ 
│ 291  219  263   74   75  284   28 │ 151  186  179  123   67  223  120 │  77   76  220  172  277  170  249 │ 144   39  130  221  124  235  242 │ 
│ 243  236  180  116  213  132  152 │  21   10   17   24  276  230  182 │ 225  226  129  173   19  163  250 │ 145   40  131  269   66   34  290 │ 
│  14  160  261  109  157  139  106 │  63   37   16   23  285   86   57 │ 210  111   12  256  187  156  189 │ 232  188  234  207  255  209  153 │ 
│  43    8  260   53   47  100   50 │ 203   42   35  126  194   36  288 │ 245  238  231  218  274  146  147 │ 190  191  192  193  101  112   56 │ 
└───────────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┴───────────────────────────────────┘
                                    │   1  149  150  169  280   55   92 │
                                    │  44  135   79   72   38   58   85 │
                                    │ 103  283  115   81  278  216   78 │
                                    │  22  268  122  270  228  121  175 │
                                    │  96  167   31   18   33  279   94 │
                                    │  51  107  159  272  265  258  251 │
                                    │  99  155   45  273  266  259  252 │
                                    └───────────────────────────────────┘
⬛⬛⬛⬛⬛⬛⬛ 🟨🟩🟨🟧🟩🟪🟦
⬛⬛⬛⬛⬛⬛⬛ 🟨🟦🟧🟪🟧🟨🟥
⬛⬛⬛⬛⬛⬛⬛ 🟧🟥🟦🟪🟧🟩🟩
⬛⬛⬛⬛⬛⬛⬛ 🟪🟥🟨🟪🟦🟩🟨
⬛⬛⬛⬛⬛⬛⬛ 🟨🟩🟨🟥🟦🟨🟦
⬛⬛⬛⬛⬛⬛⬛ 🟥🟧🟦🟪🟪🟪🟨
⬛⬛⬛⬛⬛⬛⬛ 🟧🟩🟧🟪🟦🟪🟥

🟥🟦🟪🟩🟩🟨🟨 🟩🟪🟩🟦🟧🟦🟪 🟩🟧🟥🟧🟥🟦🟪 🟥🟦🟧🟦🟦🟧🟦 
🟩🟦🟧🟧🟩🟨🟨 🟧🟪🟪🟧🟧🟧🟨 🟦🟦🟧🟥🟩🟨🟨 🟩🟪🟩🟩🟥🟥🟥 
🟩🟦🟥🟧🟩🟩🟧 🟪🟩🟦🟪🟧🟦🟪 🟦🟧🟥🟥🟧🟨🟦 🟪🟧🟨🟦🟥🟥🟥 
🟨🟦🟨🟧🟧🟨🟪 🟥🟥🟥🟩🟧🟦🟩 🟧🟧🟦🟥🟨🟥🟨 🟩🟪🟩🟦🟩🟦🟦 
🟦🟦🟥🟩🟦🟩🟥 🟪🟪🟪🟪🟨🟦🟥 🟦🟦🟩🟥🟪🟥🟨 🟩🟪🟩🟨🟧🟪🟨 
🟪🟥🟨🟩🟥🟩🟩 🟧🟪🟪🟪🟨🟧🟧 🟦🟩🟪🟨🟥🟥🟥 🟦🟥🟦🟦🟨🟦🟥 
🟪🟪🟨🟧🟪🟩🟧 🟦🟪🟪🟩🟥🟪🟨 🟦🟦🟦🟦🟨🟩🟩 🟥🟥🟥🟥🟩🟩🟧 

⬛⬛⬛⬛⬛⬛⬛ 🟪🟥🟥🟥🟨🟧🟧
⬛⬛⬛⬛⬛⬛⬛ 🟪🟩🟧🟧🟪🟧🟧
⬛⬛⬛⬛⬛⬛⬛ 🟩🟨🟩🟧🟨🟦🟧
⬛⬛⬛⬛⬛⬛⬛ 🟪🟨🟩🟨🟦🟩🟥
⬛⬛⬛⬛⬛⬛⬛ 🟧🟥🟪🟪🟪🟨🟧
⬛⬛⬛⬛⬛⬛⬛ 🟧🟩🟥🟨🟨🟨🟨
⬛⬛⬛⬛⬛⬛⬛ 🟩🟥🟪🟨🟨🟨🟨
```

# Solving
Only Rubik's cube and Pocket cube can be solved. Cubes are solved with Herbert Kociemba's algorithm.
```
print(rubiks_cube.scramble())
rubiks_cube.show()

print(rubiks_cube.solve())
rubiks_cube.show()
```
Output:
```
D U2 D B L D2 R D B' L D2 L2 D' U U U' F B' B B R' D U D' F2 B F2 U U B 
             ┌────────────┐
             │ 18   8  48 │
             │ 33   5  44 │
             │  9  17  39 │
┌────────────┼────────────┼────────────┬────────────┐
│ 25  40  21 │ 28  49  10 │  1  53  34 │ 27  20  46 │ 
│ 26  14   6 │ 29  23  35 │ 51  32  13 │ 42  41  47 │ 
│  3   4  12 │  7  22  43 │ 54  24  45 │ 16  38  30 │ 
└────────────┼────────────┼────────────┴────────────┘
             │ 19  15  36 │
             │ 11  50  31 │
             │ 37   2  52 │
             └────────────┘
U F' L B2 L2 B D L2 F' D2 F' B2 U' R2 D' B2 U F2 D2 L2 F2
             ┌────────────┐
             │  1   2   3 │
             │  4   5   6 │
             │  7   8   9 │
┌────────────┼────────────┼────────────┬────────────┐
│ 10  11  12 │ 19  20  21 │ 28  29  30 │ 37  38  39 │ 
│ 13  14  15 │ 22  23  24 │ 31  32  33 │ 40  41  42 │ 
│ 16  17  18 │ 25  26  27 │ 34  35  36 │ 43  44  45 │ 
└────────────┼────────────┼────────────┴────────────┘
             │ 46  47  48 │
             │ 49  50  51 │
             │ 52  53  54 │
             └────────────┘
```
Pocket cube solving procedure is the same.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "super-rubik-cube",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "python, rubik, cube, solve, 3x3, 2x2, rubik's cube, pocket cube, NxN, kociemba, supercube, solver",
    "author": "Ilmi28",
    "author_email": "<ilmialiev28@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/39/15/167b10a9182858815302ffa936598f19dad8dbc20a3ef3572d9b59de5f53/super_rubik_cube-1.0.4.tar.gz",
    "platform": null,
    "description": "# Description\r\nLibrary for Rubik's Cube manipulation. Creator and customizer for cubes of any size, and solver for 2x2 and 3x3 cubes (Herbert Kociemba's algorithms)\r\n\r\n# Installation\r\n\r\n```\r\npip install super-rubik-cube\r\n```\r\n\r\n# Usage\r\n> Note: 2D number cube grid may look a bit weird in output examples, but in console everything looks fine.\r\n## Creating instance of cube\r\nYou can create Rubik's cube, Pocket cube and NxN cube, where N means positive number.\r\n```\r\nimport supercube\r\n\r\nrubiks_cube = supercube.RubiksCube() # creates 3X3 cube\r\npocket_cube = supercube.PocketCube() # creates 2x2 cube\r\nn_cube = supercube.NCube(7) # creates NxN cube (in this case N is 7)\r\n\r\nrubiks_cube.show()\r\nrubiks_cube.show(colors=True)\r\n\r\npocket_cube.show()\r\npocket_cube.show(colors=True)\r\n\r\nn_cube.show()\r\nn_cube.show(colors=True)\r\n```\r\nOutput:\r\n```\r\n             \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n             \u2502  1   2   3 \u2502\r\n             \u2502  4   5   6 \u2502\r\n             \u2502  7   8   9 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 10  11  12 \u2502 19  20  21 \u2502 28  29  30 \u2502 37  38  39 \u2502 \r\n\u2502 13  14  15 \u2502 22  23  24 \u2502 31  32  33 \u2502 40  41  42 \u2502 \r\n\u2502 16  17  18 \u2502 25  26  27 \u2502 34  35  36 \u2502 43  44  45 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n             \u2502 46  47  48 \u2502\r\n             \u2502 49  50  51 \u2502\r\n             \u2502 52  53  54 \u2502\r\n             \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\r\n\r\n         \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n         \u2502  1   2 \u2502\r\n         \u2502  3   4 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502  5   6 \u2502  9  10 \u2502 13  14 \u2502 17  18 \u2502 \r\n\u2502  7   8 \u2502 11  12 \u2502 15  16 \u2502 19  20 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n         \u2502 21  22 \u2502\r\n         \u2502 23  24 \u2502\r\n         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\r\n\r\n\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6 \r\n\r\n\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\r\n\r\n\r\n                                    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n                                    \u2502   1    2    3    4    5    6    7 \u2502\r\n                                    \u2502   8    9   10   11   12   13   14 \u2502\r\n                                    \u2502  15   16   17   18   19   20   21 \u2502\r\n                                    \u2502  22   23   24   25   26   27   28 \u2502\r\n                                    \u2502  29   30   31   32   33   34   35 \u2502\r\n                                    \u2502  36   37   38   39   40   41   42 \u2502\r\n                                    \u2502  43   44   45   46   47   48   49 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502  50   51   52   53   54   55   56 \u2502  99  100  101  102  103  104  105 \u2502 148  149  150  151  152  153  154 \u2502 197  198  199  200  201  202  203 \u2502 \r\n\u2502  57   58   59   60   61   62   63 \u2502 106  107  108  109  110  111  112 \u2502 155  156  157  158  159  160  161 \u2502 204  205  206  207  208  209  210 \u2502 \r\n\u2502  64   65   66   67   68   69   70 \u2502 113  114  115  116  117  118  119 \u2502 162  163  164  165  166  167  168 \u2502 211  212  213  214  215  216  217 \u2502 \r\n\u2502  71   72   73   74   75   76   77 \u2502 120  121  122  123  124  125  126 \u2502 169  170  171  172  173  174  175 \u2502 218  219  220  221  222  223  224 \u2502 \r\n\u2502  78   79   80   81   82   83   84 \u2502 127  128  129  130  131  132  133 \u2502 176  177  178  179  180  181  182 \u2502 225  226  227  228  229  230  231 \u2502 \r\n\u2502  85   86   87   88   89   90   91 \u2502 134  135  136  137  138  139  140 \u2502 183  184  185  186  187  188  189 \u2502 232  233  234  235  236  237  238 \u2502 \r\n\u2502  92   93   94   95   96   97   98 \u2502 141  142  143  144  145  146  147 \u2502 190  191  192  193  194  195  196 \u2502 239  240  241  242  243  244  245 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n                                    \u2502 246  247  248  249  250  251  252 \u2502\r\n                                    \u2502 253  254  255  256  257  258  259 \u2502\r\n                                    \u2502 260  261  262  263  264  265  266 \u2502\r\n                                    \u2502 267  268  269  270  271  272  273 \u2502\r\n                                    \u2502 274  275  276  277  278  279  280 \u2502\r\n                                    \u2502 281  282  283  284  285  286  287 \u2502\r\n                                    \u2502 288  289  290  291  292  293  294 \u2502\r\n                                    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\r\n\r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6 \r\n\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n```\r\nYou can also define your own state (number of elements of specific colors is not limited)\r\n```\r\npocket_cube.define_state(\"RYWRRWOBGWOBWRRGGGGGGGGG\")\r\npocket_cube.show()\r\npocket_cube.show(colors=True)\r\n```\r\nOutput:\r\n```\r\n         \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n         \u2502 13  21 \u2502\r\n         \u2502  1  14 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 15   2 \u2502  9   3 \u2502  4  16 \u2502 11  12 \u2502 \r\n\u2502  5  17 \u2502  6  18 \u2502 16  10 \u2502 12  12 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n         \u2502 12  12 \u2502\r\n         \u2502 12  12 \u2502\r\n         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n\u2b1b\u2b1b \ud83d\udfe5\ud83d\udfe8\r\n\u2b1b\u2b1b \ud83d\udfea\ud83d\udfe5\r\n\r\n\ud83d\udfe5\ud83d\udfea \ud83d\udfe9\ud83d\udfea \ud83d\udfea\ud83d\udfe5 \ud83d\udfe9\ud83d\udfe9 \r\n\ud83d\udfe7\ud83d\udfe6 \ud83d\udfe7\ud83d\udfe6 \ud83d\udfe5\ud83d\udfe9 \ud83d\udfe9\ud83d\udfe9 \r\n\r\n\u2b1b\u2b1b \ud83d\udfe9\ud83d\udfe9\r\n\u2b1b\u2b1b \ud83d\udfe9\ud83d\udfe9\r\n\r\n```\r\nYou can get your current state using method `get_state`, the return will be 3d array.\r\n```\r\nprint(rubiks_cube.get_state())\r\n```\r\nOutput:\r\n```\r\n[[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]], [[19, 20, 21], [22, 23, 24], [25, 26, 27]], [[28, 29, 30], [31, 32, 33], [34, 35, 36]], [[37, 38, 39], [40, 41, 42], [43, 44, 45]], [[46, 47, 48], [49, 50, 51], [52, 53, 54]]]\r\n```\r\n## Moves\r\n### Basic moves\r\nYou can move cube using method `move`\r\n```\r\nrubiks_cube.move(\"L B' F2 U R2 F L2 U B2 R2 F D L' D L' D2 R' U' B2 F' L R'\")\r\nrubiks_cube.show()\r\n```\r\nOutput:\r\n```\r\n             \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n             \u2502 30   4  36 \u2502\r\n             \u2502 31   5  38 \u2502\r\n             \u2502 27  49  10 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502  3  24  48 \u2502 34  17   1 \u2502 39   2  54 \u2502 43  11  37 \u2502 \r\n\u2502 26  14  40 \u2502 33  23  53 \u2502 44  32  51 \u2502 35  41  47 \u2502 \r\n\u2502 46  22  52 \u2502 45  42   7 \u2502 19   8   9 \u2502 28   6  25 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n             \u2502 16  13  12 \u2502\r\n             \u2502 15  50  20 \u2502\r\n             \u2502 18  29  21 \u2502\r\n             \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n\r\n```\r\n### Advanced moves\r\nAdvanced moves are also supported. For each basic move there are:\r\n\r\n* wide moves (e.g. Fw, 4Fw', 5Fw2) - for wide move default value is 2 (when there is no number before move)\r\n* specific layer moves (e.g 3U, 5D')\r\n\r\n```\r\nn_cube.move(\"3Bw 3R2 D' 3Bw 2Rw' 3Fw R2 3Rw' 2B' 3R 2Fw2 3U2 L' 2Dw B\")\r\nn_cube.show()\r\n\r\n```\r\nOutput:\r\n```\r\n                                    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n                                    \u2502  43   36  176  267  260  191  190 \u2502\r\n                                    \u2502 140  160  167  174  283  188  195 \u2502\r\n                                    \u2502  54  279  278  277  276   40  101 \u2502\r\n                                    \u2502 126   23   24   25  271   72  102 \u2502\r\n                                    \u2502  52   89   82   75   68   16  231 \u2502\r\n                                    \u2502  51  107   65  158  157  156  155 \u2502\r\n                                    \u2502  50  106   64  151  150  149  148 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502  99  183   29  169   15    8    1 \u2502 203   63  217   28   35   42   49 \u2502 105  112   78   46   45  287  147 \u2502 252  259   96   95  133   55   56 \u2502 \r\n\u2502  93  184  285  170  110  237  244 \u2502 289   62   30   27   34   41   48 \u2502 104  111   79   39   38  286  146 \u2502 251  258   59  125   61  139  281 \u2502 \r\n\u2502 290  181   31   26   33  118  119 \u2502 162  132  117  124  131  138  145 \u2502 250   12  264   67  180  177   47 \u2502 103  185  215  222  229  236  243 \u2502 \r\n\u2502 291   60   32   74   81   88  144 \u2502 249  223  116  123  130  137  193 \u2502 273  272  171  172  269  284   71 \u2502 224  186  214  221  228  235  242 \u2502 \r\n\u2502 292  187   80  173  166  159  152 \u2502  21  216  115  122  129  136  192 \u2502 266  265  178  179  262  208  143 \u2502 248  255  213  220  227  234  241 \u2502 \r\n\u2502 293   58  257  207  206  205  153 \u2502  14   13   87   11  275  282  142 \u2502 247  209  114  121  128  135   44 \u2502 100   86  212  219  226  233  240 \u2502 \r\n\u2502 288   57  201  200  199  198  294 \u2502 196  189   94  175  168  161  154 \u2502   7  202  113  120  127  134  141 \u2502 246  253  280   22  225   85   92 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n                                    \u2502 239  232  274  218  211  204  197 \u2502\r\n                                    \u2502   6  254   20  256  163    9    2 \u2502\r\n                                    \u2502   5  261   19  263  164   69   70 \u2502\r\n                                    \u2502   4  268   18  270  165   76   77 \u2502\r\n                                    \u2502   3   10   17   73   66   83   84 \u2502\r\n                                    \u2502 210   37  230  109  108   90   91 \u2502\r\n                                    \u2502 245  238  182   53  194   97   98 \u2502\r\n                                    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n```\r\n## Scrambling\r\nYou can scramble cube by using method `scramble(number_of_moves=30)`(default value is 30)\r\n```\r\nprint(rubiks_cube.scramble())\r\nrubiks_cube.show()\r\nrubiks_cube.show(colors=True)\r\n```\r\nOutput:\r\n```\r\nB' F' D' B2 F' R' F' L B2 B2 U F D' D2 F' U2 F' R R U' B U L D2 U2 R' U' D D2 F2 \r\n             \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n             \u2502 36  51  21 \u2502\r\n             \u2502 26   5  44 \u2502\r\n             \u2502 10  33  19 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 43  47   1 \u2502 39  40   7 \u2502 12  53  28 \u2502  9  35  54 \u2502 \r\n\u2502 42  14   8 \u2502 20  23  49 \u2502 17  32  38 \u2502  2  41  13 \u2502 \r\n\u2502 18  15  16 \u2502 52  24  48 \u2502 27   4   3 \u2502 37   6  46 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n             \u2502 45  31  34 \u2502\r\n             \u2502 22  50  11 \u2502\r\n             \u2502 25  29  30 \u2502\r\n             \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe5\ud83d\udfe8\ud83d\udfe9\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe9\ud83d\udfea\ud83d\udfe6\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe7\ud83d\udfe5\ud83d\udfe9\r\n\r\n\ud83d\udfe6\ud83d\udfe8\ud83d\udfea \ud83d\udfe6\ud83d\udfe6\ud83d\udfea \ud83d\udfe7\ud83d\udfe8\ud83d\udfe5 \ud83d\udfea\ud83d\udfe5\ud83d\udfe8 \r\n\ud83d\udfe6\ud83d\udfe7\ud83d\udfea \ud83d\udfe9\ud83d\udfe9\ud83d\udfe8 \ud83d\udfe7\ud83d\udfe5\ud83d\udfe6 \ud83d\udfea\ud83d\udfe6\ud83d\udfe7 \r\n\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe8\ud83d\udfe9\ud83d\udfe8 \ud83d\udfe9\ud83d\udfea\ud83d\udfea \ud83d\udfe6\ud83d\udfea\ud83d\udfe8 \r\n\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe6\ud83d\udfe5\ud83d\udfe5\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe9\ud83d\udfe8\ud83d\udfe7\r\n\u2b1b\u2b1b\u2b1b \ud83d\udfe9\ud83d\udfe5\ud83d\udfe5\r\n```\r\nYou can also scramble big cubes \r\n```\r\nprint(n_cube.scramble())\r\nn_cube.show()\r\nn_cube.show(colors=True)\r\n```\r\nOutput:\r\n```\r\nU' 2Bw 2Rw2 3Uw 3L 2B2 3Dw2 2B 2Bw' 2L 3Fw' D2 2Rw 3R 2Rw' 2Bw 2R 3Rw' 2Fw' 3Fw 3B2 L2 2F' 3R2 R' 3Uw2 2Bw 3F' B' B \r\n                                    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n                                    \u2502 294  134  292   71  113    6  197 \u2502\r\n                                    \u2502 289  205   59   11   87  254  161 \u2502\r\n                                    \u2502  54  181  215   32   68  138  119 \u2502\r\n                                    \u2502  46  174  271   25  214  137  267 \u2502\r\n                                    \u2502 248  118  264  171  227  257  211 \u2502\r\n                                    \u2502 195   90  208   27   20   13  253 \u2502\r\n                                    \u2502  98  104   84    4  217    2  148 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 196  244   29  102  143  287  246 \u2502 141   48  127  200   64  202   49 \u2502 105   97  168   95  162  204    7 \u2502 154  198   70  224  241   91  239 \u2502 \r\n\u2502 140  237   89   88  110  282  281 \u2502  93   41   30   60   65   62  293 \u2502 240  233   69  158  114  286  247 \u2502 142    9  128  125  185  184  183 \u2502 \r\n\u2502 133  212  166   73  117  108   52 \u2502  15  136  229   26   80  206    3 \u2502 201   61  164  165   82  275  199 \u2502   5   83  262  222  178  177  176 \u2502 \r\n\u2502 291  219  263   74   75  284   28 \u2502 151  186  179  123   67  223  120 \u2502  77   76  220  172  277  170  249 \u2502 144   39  130  221  124  235  242 \u2502 \r\n\u2502 243  236  180  116  213  132  152 \u2502  21   10   17   24  276  230  182 \u2502 225  226  129  173   19  163  250 \u2502 145   40  131  269   66   34  290 \u2502 \r\n\u2502  14  160  261  109  157  139  106 \u2502  63   37   16   23  285   86   57 \u2502 210  111   12  256  187  156  189 \u2502 232  188  234  207  255  209  153 \u2502 \r\n\u2502  43    8  260   53   47  100   50 \u2502 203   42   35  126  194   36  288 \u2502 245  238  231  218  274  146  147 \u2502 190  191  192  193  101  112   56 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n                                    \u2502   1  149  150  169  280   55   92 \u2502\r\n                                    \u2502  44  135   79   72   38   58   85 \u2502\r\n                                    \u2502 103  283  115   81  278  216   78 \u2502\r\n                                    \u2502  22  268  122  270  228  121  175 \u2502\r\n                                    \u2502  96  167   31   18   33  279   94 \u2502\r\n                                    \u2502  51  107  159  272  265  258  251 \u2502\r\n                                    \u2502  99  155   45  273  266  259  252 \u2502\r\n                                    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe9\ud83d\udfe8\ud83d\udfe7\ud83d\udfe9\ud83d\udfea\ud83d\udfe6\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe6\ud83d\udfe7\ud83d\udfea\ud83d\udfe7\ud83d\udfe8\ud83d\udfe5\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe7\ud83d\udfe5\ud83d\udfe6\ud83d\udfea\ud83d\udfe7\ud83d\udfe9\ud83d\udfe9\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfe5\ud83d\udfe8\ud83d\udfea\ud83d\udfe6\ud83d\udfe9\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe8\ud83d\udfe9\ud83d\udfe8\ud83d\udfe5\ud83d\udfe6\ud83d\udfe8\ud83d\udfe6\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe5\ud83d\udfe7\ud83d\udfe6\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe7\ud83d\udfe9\ud83d\udfe7\ud83d\udfea\ud83d\udfe6\ud83d\udfea\ud83d\udfe5\r\n\r\n\ud83d\udfe5\ud83d\udfe6\ud83d\udfea\ud83d\udfe9\ud83d\udfe9\ud83d\udfe8\ud83d\udfe8 \ud83d\udfe9\ud83d\udfea\ud83d\udfe9\ud83d\udfe6\ud83d\udfe7\ud83d\udfe6\ud83d\udfea \ud83d\udfe9\ud83d\udfe7\ud83d\udfe5\ud83d\udfe7\ud83d\udfe5\ud83d\udfe6\ud83d\udfea \ud83d\udfe5\ud83d\udfe6\ud83d\udfe7\ud83d\udfe6\ud83d\udfe6\ud83d\udfe7\ud83d\udfe6 \r\n\ud83d\udfe9\ud83d\udfe6\ud83d\udfe7\ud83d\udfe7\ud83d\udfe9\ud83d\udfe8\ud83d\udfe8 \ud83d\udfe7\ud83d\udfea\ud83d\udfea\ud83d\udfe7\ud83d\udfe7\ud83d\udfe7\ud83d\udfe8 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe7\ud83d\udfe5\ud83d\udfe9\ud83d\udfe8\ud83d\udfe8 \ud83d\udfe9\ud83d\udfea\ud83d\udfe9\ud83d\udfe9\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \r\n\ud83d\udfe9\ud83d\udfe6\ud83d\udfe5\ud83d\udfe7\ud83d\udfe9\ud83d\udfe9\ud83d\udfe7 \ud83d\udfea\ud83d\udfe9\ud83d\udfe6\ud83d\udfea\ud83d\udfe7\ud83d\udfe6\ud83d\udfea \ud83d\udfe6\ud83d\udfe7\ud83d\udfe5\ud83d\udfe5\ud83d\udfe7\ud83d\udfe8\ud83d\udfe6 \ud83d\udfea\ud83d\udfe7\ud83d\udfe8\ud83d\udfe6\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \r\n\ud83d\udfe8\ud83d\udfe6\ud83d\udfe8\ud83d\udfe7\ud83d\udfe7\ud83d\udfe8\ud83d\udfea \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe9\ud83d\udfe7\ud83d\udfe6\ud83d\udfe9 \ud83d\udfe7\ud83d\udfe7\ud83d\udfe6\ud83d\udfe5\ud83d\udfe8\ud83d\udfe5\ud83d\udfe8 \ud83d\udfe9\ud83d\udfea\ud83d\udfe9\ud83d\udfe6\ud83d\udfe9\ud83d\udfe6\ud83d\udfe6 \r\n\ud83d\udfe6\ud83d\udfe6\ud83d\udfe5\ud83d\udfe9\ud83d\udfe6\ud83d\udfe9\ud83d\udfe5 \ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfe8\ud83d\udfe6\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe9\ud83d\udfe5\ud83d\udfea\ud83d\udfe5\ud83d\udfe8 \ud83d\udfe9\ud83d\udfea\ud83d\udfe9\ud83d\udfe8\ud83d\udfe7\ud83d\udfea\ud83d\udfe8 \r\n\ud83d\udfea\ud83d\udfe5\ud83d\udfe8\ud83d\udfe9\ud83d\udfe5\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe7\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfe8\ud83d\udfe7\ud83d\udfe7 \ud83d\udfe6\ud83d\udfe9\ud83d\udfea\ud83d\udfe8\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5 \ud83d\udfe6\ud83d\udfe5\ud83d\udfe6\ud83d\udfe6\ud83d\udfe8\ud83d\udfe6\ud83d\udfe5 \r\n\ud83d\udfea\ud83d\udfea\ud83d\udfe8\ud83d\udfe7\ud83d\udfea\ud83d\udfe9\ud83d\udfe7 \ud83d\udfe6\ud83d\udfea\ud83d\udfea\ud83d\udfe9\ud83d\udfe5\ud83d\udfea\ud83d\udfe8 \ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe6\ud83d\udfe8\ud83d\udfe9\ud83d\udfe9 \ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe9\ud83d\udfe9\ud83d\udfe7 \r\n\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfe5\ud83d\udfe5\ud83d\udfe5\ud83d\udfe8\ud83d\udfe7\ud83d\udfe7\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfe9\ud83d\udfe7\ud83d\udfe7\ud83d\udfea\ud83d\udfe7\ud83d\udfe7\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe9\ud83d\udfe8\ud83d\udfe9\ud83d\udfe7\ud83d\udfe8\ud83d\udfe6\ud83d\udfe7\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfea\ud83d\udfe8\ud83d\udfe9\ud83d\udfe8\ud83d\udfe6\ud83d\udfe9\ud83d\udfe5\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe7\ud83d\udfe5\ud83d\udfea\ud83d\udfea\ud83d\udfea\ud83d\udfe8\ud83d\udfe7\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe7\ud83d\udfe9\ud83d\udfe5\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b \ud83d\udfe9\ud83d\udfe5\ud83d\udfea\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\ud83d\udfe8\r\n```\r\n\r\n# Solving\r\nOnly Rubik's cube and Pocket cube can be solved. Cubes are solved with Herbert Kociemba's algorithm.\r\n```\r\nprint(rubiks_cube.scramble())\r\nrubiks_cube.show()\r\n\r\nprint(rubiks_cube.solve())\r\nrubiks_cube.show()\r\n```\r\nOutput:\r\n```\r\nD U2 D B L D2 R D B' L D2 L2 D' U U U' F B' B B R' D U D' F2 B F2 U U B \r\n             \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n             \u2502 18   8  48 \u2502\r\n             \u2502 33   5  44 \u2502\r\n             \u2502  9  17  39 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 25  40  21 \u2502 28  49  10 \u2502  1  53  34 \u2502 27  20  46 \u2502 \r\n\u2502 26  14   6 \u2502 29  23  35 \u2502 51  32  13 \u2502 42  41  47 \u2502 \r\n\u2502  3   4  12 \u2502  7  22  43 \u2502 54  24  45 \u2502 16  38  30 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n             \u2502 19  15  36 \u2502\r\n             \u2502 11  50  31 \u2502\r\n             \u2502 37   2  52 \u2502\r\n             \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\nU F' L B2 L2 B D L2 F' D2 F' B2 U' R2 D' B2 U F2 D2 L2 F2\r\n             \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n             \u2502  1   2   3 \u2502\r\n             \u2502  4   5   6 \u2502\r\n             \u2502  7   8   9 \u2502\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 10  11  12 \u2502 19  20  21 \u2502 28  29  30 \u2502 37  38  39 \u2502 \r\n\u2502 13  14  15 \u2502 22  23  24 \u2502 31  32  33 \u2502 40  41  42 \u2502 \r\n\u2502 16  17  18 \u2502 25  26  27 \u2502 34  35  36 \u2502 43  44  45 \u2502 \r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n             \u2502 46  47  48 \u2502\r\n             \u2502 49  50  51 \u2502\r\n             \u2502 52  53  54 \u2502\r\n             \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n```\r\nPocket cube solving procedure is the same.\r\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Library for simulating rubik's cubes of different sizes (N x N), and for solving 2 x 2 and 3 x 3 cubes with kociemba algorithm.",
    "version": "1.0.4",
    "project_urls": {
        "Homepage": "https://github.com/Ilmi28/SuperCube"
    },
    "split_keywords": [
        "python",
        " rubik",
        " cube",
        " solve",
        " 3x3",
        " 2x2",
        " rubik's cube",
        " pocket cube",
        " nxn",
        " kociemba",
        " supercube",
        " solver"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3915167b10a9182858815302ffa936598f19dad8dbc20a3ef3572d9b59de5f53",
                "md5": "b000e8db513c5542586847705cbe318d",
                "sha256": "ef97e3fe7300e30645e4753b08fbed1528984b31a9837dc347103517e4806264"
            },
            "downloads": -1,
            "filename": "super_rubik_cube-1.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "b000e8db513c5542586847705cbe318d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 4020696,
            "upload_time": "2024-05-05T12:03:54",
            "upload_time_iso_8601": "2024-05-05T12:03:54.006855Z",
            "url": "https://files.pythonhosted.org/packages/39/15/167b10a9182858815302ffa936598f19dad8dbc20a3ef3572d9b59de5f53/super_rubik_cube-1.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-05 12:03:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Ilmi28",
    "github_project": "SuperCube",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "super-rubik-cube"
}
        
Elapsed time: 0.22295s