Project

General

Profile

« Previous | Next » 

Revision 3880b7b7

Added by Leszek Koltunski about 1 year ago

Pyraminx Diamond solver: Abstract version finished.

View differences:

src/main/java/org/distorted/objectlib/tablebases/TBPyraminxDiamond.java
14 14
import android.content.res.Resources;
15 15

  
16 16
import org.distorted.library.type.Static3D;
17
import org.distorted.objectlib.R;
17 18

  
18 19
///////////////////////////////////////////////////////////////////////////////////////////////////
19 20

  
......
52 53

  
53 54
  public TBPyraminxDiamond(Resources res)
54 55
    {
55
    super(res, 0);
56
    super(res, R.raw.pdia_3_tablebase);
56 57
    }
57 58

  
58 59
///////////////////////////////////////////////////////////////////////////////////////////////////
......
184 185
    for(int i=0; i<5; i++) { twist[i] = total_twist%4; total_twist /=4; }
185 186

  
186 187
    int total = twist[0]+twist[1]+twist[2]+twist[3]+twist[4]+(even?0:1);
187
    twist[5] = 2*(1-total_twist) + (total%2);
188
    twist[5] = 2*total_twist + (total%2);
188 189

  
189 190
    for(int i=0; i<6; i++) quats[i  ] = CORNER_QUATS[i][twist[i]];
190 191
    for(int i=0; i<8; i++) quats[i+6] = CENTER_QUATS[i][perm[i]][0];
......
200 201
    int[] perm  = new int[8];
201 202

  
202 203
    for(int i=0; i<6; i++) twist[i] = findIndex1(CORNER_QUATS[i],quats[i]);
203
    for(int i=0; i<8; i++) perm[i]  = findIndex2(CENTER_QUATS[i],quats[i]);
204
    for(int i=0; i<8; i++) perm[i]  = findIndex2(CENTER_QUATS[i],quats[i+6]);
204 205

  
205 206
    int centers_perm_num = TablebaseHelpers.computePermutationNum(perm);
206
    int total_twist = twist[0]+ 4*(twist[1]+ 4*(twist[2]+ 4*(twist[3]+ 4*(twist[4]+ 4*(twist[5]>1 ? 0:1)))));
207
    int total_twist = twist[0]+ 4*(twist[1]+ 4*(twist[2]+ 4*(twist[3]+ 4*(twist[4]+ 4*(twist[5]>1 ? 1:0)))));
207 208

  
208 209
    return total_twist + 2048*centers_perm_num;
209 210
    }

Also available in: Unified diff