Curvy copter 2-look L4C algorithms(move optimal!)

Would you support curvy copter as an event?

  • Yes

    Votes: 23 54.8%
  • No

    Votes: 4 9.5%
  • After better hardware / solutions exist

    Votes: 15 35.7%

  • Total voters
    42
One of the helper files for my solver has optimal solutions for each of the 419904 cases for after F2L is solved. These are just two of them. The file was made with a simple BFS from the solved position.

P.S. I cannot guarantee that they are actually move optimal, just that they are move optimal under the restriction that only the U edges are used. I doubt there are any better ways with the other edges.
How can I use this function? I am working on CC COLL now. Thanks!

Btw, After I start your program, it spits out 11 scrambles and exited. Is that normal?
 
How can I use this function? I am working on CC COLL now. Thanks!

Btw, After I start your program, it spits out 11 scrambles and exited. Is that normal?
The scrambles are numbered 0-11 because I was too lazy to add a +1 in the code.

To use that file, either write some code to use the file or feed the position you want solved into the solver. Both of these will require you to be able to edit the code.
 
The scrambles are numbered 0-11 because I was too lazy to add a +1 in the code.

To use that file, either write some code to use the file or feed the position you want solved into the solver. Both of these will require you to be able to edit the code.
Uh, where is the place I can input the position? If I am right, starting for line 179 is the solver, BUT I am not sure where to input it. Sorry that I am not that familiar with python.
 
Last edited:
Using the tables whatshisbucket generated, I've put together a list of algs for l4c. I currently have it up at https://superphluous.github.io/curvycopterl4c.html.
I didn't account for symmetry in the program (only went through once manually looking for duplicates) so there might still be a few duplicate cases listed.
Woah! Nice work! How did you use his program? I have trouble using it.
 
Uh, where is the place I can input the position? If I am right, starting for line 179 is the solver, BUT I am not sure where to input it. Sorry that I am not that familiar with python.
The first block of code after line 179 generates a random position. If you want to fix the position, just put something below that block defining "start" to be whatever position you want.
Of course it would be faster if you just ran the following code instead:
Python:
def encode4(pos):

    code=0

    for i in range(4):

        code+=pos[3]*5**i

    code*=256

    for i in range(4):

        code+=pos[1]*4**i

    code*=81

    for i in range(4):

        code+=pos[2]*3**i

    code*=16

    for i in range(4):

        code+=pos[0]*2**i

    return code

f=open("phase4.txt")

i=0

phase4={}

for line in f:

    if i==0:

        curr=int(line)

    else:

        make=line.split()

        phase4[curr]=make

    i=1-i

f.close()

pos=[[0,0,0,0,0,0,0,0,0,0,0,0],[0,1,2,3,4,5,6,7],[1,1,1,0,0,0,0,0],[0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5]]

print(" ".join(phase4[encode4(pos)]))
The above would print the sequence that solves pure sune; just change pos to whatever position you want to solve.
 
The first block of code after line 179 generates a random position. If you want to fix the position, just put something below that block defining "start" to be whatever position you want.
Of course it would be faster if you just ran the following code instead:
Python:
def encode4(pos):

    code=0

    for i in range(4):

        code+=pos[3]*5**i

    code*=256

    for i in range(4):

        code+=pos[1]*4**i

    code*=81

    for i in range(4):

        code+=pos[2]*3**i

    code*=16

    for i in range(4):

        code+=pos[0]*2**i

    return code

f=open("phase4.txt")

i=0

phase4={}

for line in f:

    if i==0:

        curr=int(line)

    else:

        make=line.split()

        phase4[curr]=make

    i=1-i

f.close()

pos=[[0,0,0,0,0,0,0,0,0,0,0,0],[0,1,2,3,4,5,6,7],[1,1,1,0,0,0,0,0],[0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5]]

print(" ".join(phase4[encode4(pos)]))
The above would print the sequence that solves pure sune; just change pos to whatever position you want to solve.
Thanks for the info!
 
A small program I made to test these L4C algs in GelatinBrain quickly:
C++:
#include<iostream>
#include<iomanip>
using namespace std;
char in;
bool state = true;
int main(){
    for(int i = 0;state != false;i++){
        in = cin.get();
        cout<<"/*"<<setfill('0')<<setw(6)<<i<<"*/U"<<in<<",\n";
        if(cin.get() == EOF)
        state = false;
    }
return 0;
}
Just paste the pure F,R,B,L notationed algs in it and it will turn it into GelatinBrain notation.
 
Using the tables whatshisbucket generated, I've put together a list of algs for l4c. I currently have it up at https://superphluous.github.io/curvycopterl4c.html.
I didn't account for symmetry in the program (only went through once manually looking for duplicates) so there might still be a few duplicate cases listed.

I see the site no longer works. Do you know if you would be able to get it back up again?
 
Some duplicted algs:
1. There are only 4 algs when the top is done because that's essentially PL4C and there are only 4 PL4C cases.
2. The H perm should only have 8 algs since the case looks exactly the same after a 180 degree rotation so the 8 A perm cases would be 4
cases. For example:
one.pngtwo.png
 
Hello, I am confused about the algorithms. I use the one look ones, and I can't avoid getting a X perm. Is it my problem? I can't figure it out. Help.:)
 
Back
Top