BLD solution parser

sneze2r

Regular
Joined
Nov 30, 2012
Messages
171
Location
Poland
WCA ID
2012JALO01
YouTube
Visit Channel
Have anyone created program to parse raw 3x3 solution into readable format where each BLD alg is detected inside solution?

Example:

input:
Code:
U F B' R' U' R B F' U' L R' D U' B U B' U D' R U'
L D' B' D U' L L U D' B' D L'
R' L L' L R' L D R D' R' L R' L U R' U'
L' R B' R' B R L' D' R D R' L R' L
L L D L' L' U' L L D' L' L' D L L U L' L' D'
D' R' D R U U R' D' R U D
R' R' D R U' R' D' R U R U
R D R' U' R D R' U R D' D' R'
(I've put newlines just to make it readable- input doesn't have this)

output:
Code:
[U S' U', L'] //edges UF, LD-LB
[R' E' R, U] //edges UB, RD-UR
[L Uw' L: [E', L2]] //edges UB, FL-LU
[M2, U R U'] //edges UB, FR-DF
[M: [U' R' U, M]] //edges UB, BD-RB
Rw2 U Rw2 U' Rw2 U' Rw2 D Rw2 D Rw2 D' //corners UBR, UFL-DBL
D' R' D R U2 R' D' R D U // U-U' cancel| corners UFR, UBL-FDR
R2 D R U' R' D' R U R U //corners UFR, BLU-DFL
[R : [D, R' U' R]] //corners UFR, RBD-FDL

Commutator notation is not really a must have. I already have functionality for bluetooth cube to parse algs from raw solution (commutators, twists, 2e2e, you name it) but there is one major problem- it cannot detect canceled moves. Maybe there is some solution already for this? Or someone have any idea?
 
Last edited:
Oh nevermind, there is a tool already (traindbld.com- although I cannot connect my gan356i) thread can be closed

I see this parser is not detecting cancelled moves so it's not implemented there.
 
Last edited:
I've been thinking to do something like this before, and I came to the conclusion that there is no way to do it without human intervention in the process. For instance, the GAN iCarry emits the sequence of moves as you do them, so instead of E, it does U D', but with that it comes the problem to detect if the user did E or U D'. From the moves alone, there's no way to know. Also, in case of having the way to distinguish between both scenarios, you have to add rotation moves and update everything that comes next to match the position of the cube.

If you transform U F B' R' into U S' U', is because you added a z' to balance the effect of the S. Instead of trying to detect conmutators, maybe a better solution is to match if there's a partially made conmutator (without one r two moves at the beginning or the end). Maybe that can solve or bring some help to the process.
 
I have some JS code that recognizes canceled moves quite efficently. It's still in development but it easily finds up to 2HTM cancels between algs. So it's not impossible as I thought. There might be some false-positives but it won't be an issue (ie. regocnizing corner comm+pairity alg with canceled moves as LTCT)
 
Back
Top