Revision 3880b7b7
Added by Leszek Koltunski about 1 year ago
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
Pyraminx Diamond solver: Abstract version finished.