# 5x5x5, 6x6x6, 7x7x7 or NxNxN solvers

#### dwalton76

##### Member
I just pushed a fix, the odds of hitting that bug were 1 in 40,320!! There is one more bug to fix here, for some reason the entire cube rotations (x, y, z moves) are not being removed as they should be.

#### dwalton76

##### Member
I'm sorry that this is totally unrelated to the conversation, but I just spent a quarter of an hour or so reading through some messages on this thread and this is so fascinating. I know very little of what any of you say but I wish I did, are you programmers or coders? Or is coding a hobby?

I write code for a living and as a hobby I do a lot of lego mindstorms projects for fun and one of those was a rubiks cube solving robot which led me down this path of writing a NxNxN rubiks cube solver.

#### SteveCuber

##### Member
I just pushed a fix, the odds of hitting that bug were 1 in 40,320!! There is one more bug to fix here, for some reason the entire cube rotations (x, y, z moves) are not being removed as they should be.
One in 40,320! I was really scratching my head over this one. Tried out the fix and it worked like a charm. Thanks for the quick solution.

#### SteveCuber

##### Member
Hi dwalton76,
Unfortunately, the uSD on my RaspberryPi 3 crashed. Fortunately, a backup of key files was done a few days before. Reinstalled Raspbian and tested a few Python programs and all looked good. I did a reinstall of rubiks-cube-NxNxN-solver and kociemba 3x3x3 solver, per github instructions.
Tried 3x3x3 and 5x5x5 and was not able to get either to work.

Have attached the results from my installation and running of the attempt to solve the first cube. A common error on install and the first run is an invalid syntax related to a filesize, such as below:

File "/usr/local/lib/python3.5/dist-packages/rubikscubennnsolver/LookupTable.py", line 286
log.info(f"{filename}: filesize {os.path.getsize(filename):,} does not equal target filesize {filesize:,}")
^
SyntaxError: invalid syntax

Any suggestions you have to offer would be appreciated.

Thank You

#### Attachments

• NxNxNInstallJan20.txt
12.1 KB · Views: 2

#### dwalton76

##### Member
It is because of the f-strings, this feature was introduced in python3.6 but you are running 3.5. I should have the installer catch this and raise a better error.

In a nutshell though if you upgrade to python 3.6 or later you should be good.

#### SteveCuber

##### Member
It is because of the f-strings, this feature was introduced in python3.6 but you are running 3.5. I should have the installer catch this and raise a better error.

In a nutshell though if you upgrade to python 3.6 or later you should be good.

#### SteveCuber

##### Member
Hi dwalton76,
Updated python3 and now have Rev 3.7.3 installed. FYI, the code is being ran on a Raspberry Pi 3. The latest version of Raspbian was downloaded earlier this week.

With Python 3.7.3 installed, a 3x3x3 cube was solved. One case each of 4x4x4 and 5x5x5 cubes were not solved. Output files are attached.
Do you have any other suggestions?
Regards.

#### Attachments

• NewInstallResultsJan22.txt
22.2 KB · Views: 6

#### Hakodora

##### Member
dear all
great post for cube solver, it is the best in the world.
i followed all instructions in GitHub to setup software, but comes with error in beginning when I ran ”cranecube.py“ on my Ev3, which shows largemotor doesn’t have attribute “wait_until_moving”, and one more problem is 6x6x6 is automatically set in the beginning (while I get 3x3x3 cube only).
appreciate much if any one can help or guide me, millions thanks.

#### Attachments

• 6DBD690C-1B8B-4135-9485-73CC0331C502.jpeg
512.1 KB · Views: 6

#### abunickabhi

##### Member
I just wanted to solve a 17x17 on my machine and was lazy to write a kociemba order for 17x17 (https://www.speedsolving.com/threads/program-to-convert-a-scramble-to-kociemba-order-string.84674/). Is there a better way rather than manually typing down the cube state. (I dont own a 17x17 real cube so scanning is not an option.)

The lookup-table folder currently is 11.5GB, I hope it includes all the lookup tables that were uploaded by you.

Also, dwalton76, have you tried 18x18 solve on this program?

#### dwalton76

##### Member
Hi dwalton76,
Updated python3 and now have Rev 3.7.3 installed. FYI, the code is being ran on a Raspberry Pi 3. The latest version of Raspbian was downloaded earlier this week.

With Python 3.7.3 installed, a 3x3x3 cube was solved. One case each of 4x4x4 and 5x5x5 cubes were not solved. Output files are attached.
Do you have any other suggestions?
Regards.

My apologies for replying a year and a half later I tried those two cubes and they are both working today on later master. Can you try

Code:
git pull
make clean
make init
source ./venv/bin/activate

and try to solve those cubes again.

#### dwalton76

##### Member
dear all
great post for cube solver, it is the best in the world.
i followed all instructions in GitHub to setup software, but comes with error in beginning when I ran ”cranecube.py“ on my Ev3, which shows largemotor doesn’t have attribute “wait_until_moving”, and one more problem is 6x6x6 is automatically set in the beginning (while I get 3x3x3 cube only).
appreciate much if any one can help or guide me, millions thanks.

Are you still seeing this issue? I suspect you were on a later release of ev3dev-lang-python that did not have wait_until_moving

#### dwalton76

##### Member
I just wanted to solve a 17x17 on my machine and was lazy to write a kociemba order for 17x17 (https://www.speedsolving.com/threads/program-to-convert-a-scramble-to-kociemba-order-string.84674/). Is there a better way rather than manually typing down the cube state. (I dont own a 17x17 real cube so scanning is not an option.)

The lookup-table folder currently is 11.5GB, I hope it includes all the lookup tables that were uploaded by you.

Also, dwalton76, have you tried 18x18 solve on this program?

This will print the cube and the kociemba string for a scrambled 17x17x17
Code:
from rubikscubennnsolver import configure_logging, RubiksCube
from rubikscubennnsolver.RubiksCubeNNNOdd import solved_171717

configure_logging()
cube = RubiksCube(solved_171717, 'URFDLB')
cube.randomize(count=2000)
cube.print_cube()
print((cube.get_kociemba_string(True))

11.5G for the tables sounds about right

I tried up to a 20x20x20 at some point but eventually the cubes become so large that alg.cubing.net cannot load the page with the solution. The solver will work with any size cube though.

#### dwalton76

##### Member
Have you seen this NxN solver: https://cube-solver.com/
It's far from being optimal but it's worth checking out.
Interesting...it is lighting fast at producing a solution but the solutions are huuuuge. For a scambled 5x5x5 is produced a solution 1067 steps long!
• 230 steps to solve the centers
• 675 steps to pair the edges
• 162 steps to solve the 3x3x3
That is the only web-based solver that I know of for 5x5x5 and larger though so even though the solutions are long at least it is out there.

#### abunickabhi

##### Member
This will print the cube and the kociemba string for a scrambled 17x17x17
Code:
from rubikscubennnsolver import configure_logging, RubiksCube
from rubikscubennnsolver.RubiksCubeNNNOdd import solved_171717

configure_logging()
cube = RubiksCube(solved_171717, 'URFDLB')
cube.randomize(count=2000)
cube.print_cube()
print((cube.get_kociemba_string(True))

11.5G for the tables sounds about right

I tried up to a 20x20x20 at some point but eventually the cubes become so large that alg.cubing.net cannot load the page with the solution. The solver will work with any size cube though.
I think the new twizzle software made by Lucas Garron can go higher than 17x17 representations.
The alg.cubing had a NxN limit, but twizzle will not have one.

#### dwalton76

##### Member
twizzle looks pretty cool, I'll switch my solver over to that once it is ready