Kit Clement
Premium Member
I just finished writing a rudimentary kilominx solver. The "x2" rotations are denoted as "flip" instead of "x2" because x rotations already mean something else, but that can be easily changed. (It's possibly buggy and definitely slow; your mileage may vary.)
Code:>>> print_move_sequence(solve(random_state())) "F2 flip R2 BR2' U F2' U2 BR' R2 BR2 flip F2' BL2' BR' U' BR' BL2 L2 U F U2' R U' R2' F2' U R2 F2' U' R2 U'" >>> print_move_sequence(solve(random_state())) "F2' R2 BL U2 L' BL' BR flip U' F' BL2 U2' BR2' R2' F2' L2 U R F R' U2 F U' R' F2' R2' U2'" >>> print_move_sequence(solve(random_state())) "R flip U R' BR2 BL2 BR2' BL2 BR' flip U' R2 BL2 U2 L2 BL2 BR BL' F U2 R' U' F2' R2 U2 R' F R2 F2 R2'" >>> print_move_sequence(solve(random_state())) "U R F2' L' U2' R2 L' flip U R2' BR' U2 BL' BR U F2 L2' U2' R2 U F2' R2 U' F2' R2 U2' F2' U' R2"
Very cool! These scrambling sequences aren't too bad to do either. I don't have much of a way of determining if I'm correct, but this is awesome to have a random state generator for Kilominx.
Also, I was trying to replicate something like this with ksolve, but it appears that after going beyond 14 pieces it is just too much for ksolve to handle. I was able to get something with U, R, F, L, and BL to work, but adding the 15th piece with BR was too much.
EDIT: Just looked through the code -- your "phases" were exactly what Ranzha and I were discussing how the solver/scrambler would work last night: get U layer stuff that needs to be in D out, flip, solve D, flip, solve the rest. I'm kind of surprised at how few moves this requires, especially since you did a 6gen -> 3gen split at the end.
Last edited: