# Rubik's cube F2L solver

#### circular

##### Member
Here is my lastest program. It is a Rubik's cube program that solves the first two layers using the F2L method.

You can turn the cube in 3D and move faces using F, U, L, B, D, R, with Shift and Alt. Also you can use M, E, S for slice moves, and x,y,z to rotate the cube with the keyboard.

http://consume.o2switch.net/rubik_f2l.zip

Here is a screenshot :

#### Noahaha

##### blindmod
Why not just have it do OLL PLL as well?

#### circular

##### Member
I am still wishing to do some kind of optimal OLL and optimal PLL solver. That's why I didn't go directly toward automatic application of these algorithms. But if I can't find out how to do it, well I suppose I can do some automatic recognition of cases and rotation of those algorithms.

I am also thinking about generating more fingertrick-friendly sequences, for example using Dw instead of U if it is better, etc. But I do not know yet how to do this.

#### circular

##### Member
Here is a new version :
- solving of OLL using moves of length 8 or less

Cool

#### circular

##### Member
There is new version, where you can choose the aspect of the cube (classic, white, stickerless...)

#### Yuxuibbs

##### Member
Can it do counterclockwise turns?

#### circular

##### Member
Yes, if you use Alt key. And if you use Shift key, it turns the middle slice too.

#### circular

##### Member
I've done the optimization of sequences for grip (by adding rotations and using double moves instead of simple moves).

The scrambe can also be grip-optimized.

Here is an example :

B2 L2 B' R' B' U' L2 R2 D' B2 L2 F' B' L2 U D' B' R L2 U D R2 L' F2 L'

is optimised in :

y R2 x' U2 R' u' f' U' r2 R2' U' F2 r2 F' f' u2 R r' u' R r2' F f y z' R2 r' U2 r'

The F2L solver finds (for the bottom cross) :

B D F2 R' F D / U2 B' U' B / U2 R' U2 R / U2 F R U2 R' U2 F' / U F' U' F U' R U R' (29f)

with grip optimization, it finds instead :

f r U2 z2 x' u' r D / U2 R' U' R / U2 x' u' R2 D / R2' F D R2 u' y' r2' F' / r U' r' F z U' R U R' (29f)

The OLL solver finds

z U R b U' F' r' / r U' R' U x r' U' R (11f)

We get a J-perm

U'

Solver finds
L2 D L D' L B2 R' U R B2(3572 ms)

Optimized in

r2' d F U' y r U2 R' F R U2 x

Moves weights may not be very good for now and may need some adjustments.

##### Member
Which language you used?

Looks great, btw.

#### circular

##### Member
It's done in Pascal (using Lazarus).

Thanks.