Revision 5b121225
Added by Leszek Koltunski 10 months ago
src/main/java/org/distorted/objectlib/algphases/PhaseRegex.java | ||
---|---|---|
157 | 157 |
{ |
158 | 158 |
int[] moveSeq = mRegex.getFirst(); |
159 | 159 |
int[] quats = object.getCopiedCubitQuats(); |
160 |
String d = MitmTable.getQuatString(quats); |
|
161 |
android.util.Log.e("D", "starting quats: "+d); |
|
162 | 160 |
|
163 | 161 |
do |
164 | 162 |
{ |
165 | 163 |
int numMoves = (moveSeq==null ? 0 : moveSeq.length); |
166 |
for(int m=1; m<7/*numMoves*/; m++) |
|
167 |
{ |
|
168 |
object.makeMove(moveSeq[m]); |
|
169 |
String drr = object.debug(1); |
|
170 |
android.util.Log.e("D", "making move: "+moveSeq[m]+" corner --+ : "+drr ); |
|
171 |
} |
|
172 |
|
|
164 |
for(int m=1; m<numMoves; m++) object.makeMove(moveSeq[m]); |
|
173 | 165 |
int[] qts = object.getCubitQuats(); |
174 |
|
|
175 | 166 |
boolean solved = mTargetQuats.matchesQuats(qts); |
176 | 167 |
object.setUpStartingQuats(quats); |
177 | 168 |
if( solved ) return simplify(moveSeq); |
src/main/java/org/distorted/objectlib/algsolvers/SolvedObject.java | ||
---|---|---|
66 | 66 |
public int getMultQuat(int index1, int index2) { return mQuatMult[index1][index2]; } |
67 | 67 |
public int[][] getBasicAngles() { return mBasicAngles; } |
68 | 68 |
|
69 |
public String debug(int cubit) { return mCubits.debug(cubit); } |
|
70 |
|
|
71 | 69 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
72 | 70 |
|
73 |
public void setUpStartingQuats(int[] quats) { mCubits.setUpQuats(quats); } |
|
74 |
public void makeMove(int moveIndex) { mCubits.makeMove(moveIndex); } |
|
75 |
public void backMove(int moveIndex) { mCubits.backMove(moveIndex); } |
|
76 |
public int[] getCubitQuats() { return mCubits.getRotQuats(); } |
|
71 |
public void setUpStartingQuats(int[] quats) { mCubits.setUpQuats(quats); } |
|
72 |
public void makeMove(int moveIndex) { mCubits.makeMove(moveIndex); } |
|
73 |
public void backMove(int moveIndex) { mCubits.backMove(moveIndex); } |
|
74 |
public int[] getCubitQuats() { return mCubits.getRotQuats(); } |
|
75 |
public String debug(int cubit) { return mCubits.debug(cubit); } |
|
77 | 76 |
|
78 | 77 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
79 | 78 |
|
... | ... | |
245 | 244 |
int row = move[1]; |
246 | 245 |
int angle = move[2]; |
247 | 246 |
int basic = mBasicAngles[axis][row]; |
248 |
ret[i] = makeQuaternionIndex(axis,-angle*(360/basic));
|
|
247 |
ret[i] = makeQuaternionIndex(axis,angle*(360/basic)); |
|
249 | 248 |
} |
250 | 249 |
|
251 | 250 |
return ret; |
... | ... | |
264 | 263 |
int row = move[1]; |
265 | 264 |
int angle = move[2]; |
266 | 265 |
int basic = mBasicAngles[axis][row]; |
267 |
ret[i] = makeQuaternionIndex(axis,angle*(360/basic)); |
|
266 |
ret[i] = makeQuaternionIndex(axis,-angle*(360/basic));
|
|
268 | 267 |
} |
269 | 268 |
|
270 | 269 |
return ret; |
src/main/java/org/distorted/objectlib/algsolvers/SolvedObjectCubit.java | ||
---|---|---|
25 | 25 |
private final int[][] mMoveTable; |
26 | 26 |
private final int[] mQuatForwardTable; |
27 | 27 |
private final int[] mQuatBackwardTable; |
28 |
|
|
29 |
private final int mNumAxis; |
|
28 |
private final int mNumAxis; |
|
30 | 29 |
|
31 | 30 |
private static class CubitData |
32 | 31 |
{ |
... | ... | |
64 | 63 |
mQuatMult = quatMult; |
65 | 64 |
mRotQuats = new int[mNumCubits]; |
66 | 65 |
mMoveTable = moveTable; |
67 |
|
|
68 |
mNumAxis = axis.length; |
|
66 |
mNumAxis = axis.length; |
|
69 | 67 |
|
70 | 68 |
mQuatForwardTable = quatForwardTable; |
71 | 69 |
mQuatBackwardTable= quatBackwardTable; |
... | ... | |
79 | 77 |
{ |
80 | 78 |
StringBuilder sb = new StringBuilder(); |
81 | 79 |
int q = mRotQuats[cubit]; |
80 |
sb.append("quat: "); |
|
81 |
sb.append(q); |
|
82 |
sb.append("; "); |
|
82 | 83 |
|
83 |
for(int a=0; a<mNumAxis; a++)
|
|
84 |
if( q>=0 )
|
|
84 | 85 |
{ |
85 |
sb.append(mData[cubit].rotRowBitmaps[a]); |
|
86 |
sb.append(' '); |
|
86 |
int ji = mData[cubit].jumpIndices[q]; |
|
87 |
|
|
88 |
for(int a=0; a<mNumAxis; a++) |
|
89 |
{ |
|
90 |
sb.append(mData[ji].rotRowBitmaps[a]); |
|
91 |
sb.append(' '); |
|
92 |
} |
|
87 | 93 |
} |
88 | 94 |
|
89 | 95 |
return sb.toString(); |
Also available in: Unified diff
Bugfixes