# ksolve+ v1.0 - general-purpose algorithm finder

#### Jakube

##### Member
Are you sure you're in the correct directory. You can navigate with 'cd'.

But if you still fail calling ksolve, simply use the online version of ksolve+ (http://www.cubing.net/ksolve.js/). I guess it's a bit slower, but not much.

#### G2013

##### Member
Are you sure you're in the correct directory. You can navigate with 'cd'.

But if you still fail calling ksolve, simply use the online version of ksolve+ (http://www.cubing.net/ksolve.js/). I guess it's a bit slower, but not much.
Finally!! Thank you so much! Well, I think asking is the best solution.
r2 U2 r U r2 U' r U r U' r2 U r' U' r2 U2 r2 -Uperm
U2 r U r' U' r' U' r U r U' r' U' r' U r U' -Antisune

Last edited:

#### AvGalen

ksolve+ *is* for Windows. There's a Linux version too but obviously if you are on Windows you shouldn't use that one. The thing is, there's no GUI, so you can't just click around on a window to set stuff up. Writing a GUI is tricky and can take a lot of time, so you can imagine why I didn't feel like doing it. If someone wants to give it a shot, go ahead...
with Xksolve or WINksolve I meant that their should be a GUI. I personally love the commandline but it is rarer and rarer for a program to ONLY have a commandline. I think one of the reasons why Cube Explorer is used so much is because it DOES have a nice GUI.

#### Robert-Y

##### Member
Are you sure you are in the right directory?

#### IQubic

##### Member
How the heck do you write a definition file? How do I tell the program which piece on my puzzle is piece 1 in the code? I tried to follow someone's move, but we numbered the pieces differently. Therefore I got a different result than him.

-IQubic

Fixed Corner Notation, WCA-style:
Code:
# Skewb ksolve+ definition file (tested on v1.3 from http://mzrg.com/rubik/ksolve+/)
#
# Notation is Fixed Corner Notation (FCN) as defined here:
# https://www.worldcubeassociation.org/regulations/#12h
#
# Ranzha
#
# centres U F R D B L
# corners UFR, UBR, UBL, UFL, DFR, DBR, DBL, DFL
# moves U R L B

Name Skewb
Set corners 8 3
Set centres 6 1
Solved
corners
1 2 3 4 5 6 7 8
0 0 0 0 0 0 0 0
centres
1 2 3 4 5 6
End
Move U
corners
1 7 3 2 5 6 4 8
0 2 1 2 0 0 2 0
centres
5 2 3 4 6 1
End
Move R
corners
1 5 3 4 7 6 2 8
0 2 0 0 2 1 2 0
centres
1 2 4 5 3 6
End
Move L
corners
1 2 3 7 4 6 5 8
0 0 0 2 2 0 2 1
centres
1 6 3 2 5 4
End
Move B
corners
1 2 6 4 5 8 7 3
0 0 2 0 0 2 1 2
centres
1 2 3 6 4 5
End
Aww yea, I knew this would come in handy

Code:
# Skewb ksolve+ definition file (tested on v1.3 from http://mzrg.com/rubik/ksolve+/)
#
# Notation is FCN as defined here;
# http://meep.cubing.net/skewb-fcn.html
#
# Kirjava is cool
#
# CORNERS UFL, UBL, UBR, DFR, DFL, DBL, DBR
# CENTRES U F L B R D
# MOVES U D L R

Name Skewb
Set CORNERS 7 3
Set CENTRES 6 1
Solved
CORNERS
1 2 3 4 5 6 7
CENTRES
1 2 3 4 5 6
End
Move R
CORNERS
1 2 4 6 5 3 7
0 0 2 2 0 2 1
CENTRES
1 2 3 5 6 4
End
Move L
CORNERS
6 2 3 1 5 4 7
2 0 0 2 1 2 0
CENTRES
1 3 6 4 5 2
End
Move U
CORNERS
3 2 6 4 5 1 7
2 1 2 0 0 2 0
CENTRES
4 2 1 3 5 6
End
Move D
CORNERS
1 7 3 4 2 6 5
0 2 0 0 2 1 2
CENTRES
1 2 4 6 5 3
End
rob helped fix a mistake
How the heck do these both work??? It's the same exact moves written two different ways. The Def files are different. Not the Same. How does this work???

Last edited by a moderator:

How the heck do you write a definition file? How do I tell the program which piece on my puzzle is piece 1 in the code? I tried to follow someone's move, but we numbered the pieces differently. Therefore I got a different result than him.

-IQubic
The software doesn't know or care which piece is where. Make up a numbering scheme when you define the pieces, then just stick to that numbering scheme when you define the moves.

#### IQubic

##### Member
I can't get the program to do God's algorithm. I just can't.
EDIT: I only get this issue when trying to use a Skewb Def file I created.

Code:
Name Skewb

# CENTERS U F R B L D
# CORNERS ULB URB URF ULF DLB DRB DRF DLF
# CO is how many clockwise turns to orient correctly

Set CENTERS 6 1
Set CORNERS 8 3

Solved
CENTERS
1 2 3 4 5 6
CORNERS
1 2 3 4 5 6 7 8
End

Move F
CENTERS
1 3 6 4 5 2
CORNERS
1 2 6 4 5 8 7 3
0 0 1 0 0 1 2 1
End

Move R
CENTERS
1 2 4 6 5 3
CORNERS
1 5 3 4 7 6 2 8
0 1 0 0 1 2 1 0
End

Move B
CENTERS
1 2 3 5 6 4
CORNERS
8 2 3 4 5 1 7 6
1 0 0 0 2 1 0 1
End

Move L
CENTERS
1 6 3 4 2 5
CORNERS
1 2 3 7 4 6 5 8
0 0 0 1 1 0 1 2
End
EDIT 2: I can NOT get Ksolve+ to use my custom Skewb definition. It does not matter what I put a the scramble.

Last edited:

#### Jakube

##### Member
I can't get the program to do God's algorithm. I just can't.
EDIT: I only get this issue when trying to use a Skewb Def file I created.

Code:
Name Skewb

# CENTERS U F R B L D
# CORNERS ULB URB URF ULF DLB DRB DRF DLF
# CO is how many clockwise turns to orient correctly

Set CENTERS 6 1
Set CORNERS 8 3

Solved
CENTERS
1 2 3 4 5 6
CORNERS
1 2 3 4 5 6 7 8
End

Move F
CENTERS
1 3 6 4 5 2
CORNERS
1 2 6 4 5 8 7 3
0 0 1 0 0 1 2 1
End

Move R
CENTERS
1 2 4 6 5 3
CORNERS
1 5 3 4 7 6 2 8
0 1 0 0 1 2 1 0
End

Move B
CENTERS
1 2 3 5 6 4
CORNERS
8 2 3 4 5 1 7 6
1 0 0 0 2 1 0 1
End

Move L
CENTERS
1 6 3 4 2 5
CORNERS
1 2 3 7 4 6 5 8
0 0 0 1 1 0 1 2
End
EDIT 2: I can NOT get Ksolve+ to use my custom Skewb definition. It does not matter what I put a the scramble.
Please describe more precisely what you want and what you tried. Is there any error messages?

I took your def file and it works on my laptop. I can calculate God's algorithm, solve random states, ...

edit: I played a little bit more with the def file. The computation of God's algorithm produces other numbers than the numbers of http://www.jaapsch.net/puzzles/skewb.htm. At least for depth > 5. Strange, I checked the moves definitions and they seem to be correct. (I think you mixed U with U', F with F', and so on, but it should work nevertheless). I'm confused.

Last edited by a moderator:

#### qqwref

##### Member
That's very odd. Do other Skewb def files give your numbers, or Jaap's numbers, or something entirely different?

#### Robert-Y

##### Member
I might have figured it out. Create a scramble file that is equivalent to the scramble "y2". Because this is not defined as solved state, ksolve will attempt to do moves in order to achieve an effect equivalent to y2.

Which leads to this question: Does this problem occur anyway with a fixed corner notation def file? I should hope not.

#### Ranzha

##### Friendly, Neighbourhoodly
I might have figured it out. Create a scramble file that is equivalent to the scramble "y2". Because this is not defined as solved state, ksolve will attempt to do moves in order to achieve an effect equivalent to y2.

Which leads to this question: Does this problem occur anyway with a fixed corner notation def file? I should hope not.
This is what I was going to say.
Some 12-move antipodes are the equivalent to y2. Because of this, for generating God's Algorithm tables, FCN is the way to go.

#### qqwref

##### Member
Oh, yeah, good point there Robert. Ksolve+ doesn't use our concept of a rotation, it just checks to see what is generated by the moves you defined. So if the same position can show up in more than one orientation, they will both be in the God's Algorithm table. IQubic fixed the U center, but each center has 2 orientations, so each position could show up in 2 ways.

It's surprising that y2 takes 12 moves, though. I would've expected a shorter sequence.

Last edited:

#### IQubic

##### Member

That is the error I get. This error occurs with any scramble.
In the future I will be generating speedsolving alg with this.

Last edited:

#### cubizh

##### Super Moderator
Staff member
View attachment 4644
That is the error I get. This error occurs with any scramble.
In the future I will be generating speedsolving alg with this.
You are using an outdated version of ksolve+ then.
If you read back a couple of pages on this thread, that is a common error derived from a bug in the code and there's a simple way to fix it.
If you can't change code yourself, just make sure there's no empty lines on the scramble and definition file.
Depending on what code you used, you should ask its maintainer to fix this silly issue, or just fix it yourself and recompile.

#### IQubic

##### Member
I fixed the code, but still get this error. I also removed the empty lines at the end. I still get the error.

Staff member

#### IQubic

##### Member
How does one compile the code? The online version does not work for me. The big go button does nothing for me.

#### mark49152

##### Super Moderator
Staff member
View attachment 4644
That is the error I get.
I get the same error using the Windows binary from github. It also reports its version as 1.0 not 1.3. COuld someone who has already rebuilt it please update the binary? It would save me the effort of installing whatever I would need to recompile it myself. Thanks!

#### mark49152

##### Super Moderator
Staff member
Double post, because I have another question. I am trying to use ksolve+ as an F2L solver. I have added the following to the standard 3x3 defs file:-

Code:
Ignore
CORNERS
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
EDGES
1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0
End
When I give it a scramble R U R' U', I would expect the solutions to include R' F R F', U2 R U2 R', etc., but that's not the case. It only gives solutions that fully solve the cube. It appears my "ignore" is being ignored. Can anyone help?

I am using the Javascript version at http://www.cubing.net/ksolve.js/ since I cannot get the Windows .exe to work.

#### Jakube

##### Member
ad windows version: Have you tried downloading the zip (containing an exe) from qqref's original post. This version works fine on my laptop (Win 7).

ad F2L-Solver: In the scramble you have to ignore the last layer pieces with a ?. E.G. if your scramble is 1 3 7 9 2 6 ... and you want to ignore the last layer, write ? ? 7 9 ? 6 ...

In the definition file you're only specifying the pieces, which may be ignored. To really ignore them, write ?s.

Last edited: