Revision 766bf4c4
Added by Leszek Koltunski 9 months ago
src/main/java/org/distorted/objectlib/tablebases/TablebasesAbstract.java | ||
---|---|---|
39 | 39 |
private int[][] mQuatMult; |
40 | 40 |
private int[] mInvertedQuat; |
41 | 41 |
|
42 |
private ArrayList<int[]> mMoves; |
|
43 |
|
|
42 | 44 |
Tablebase mTablebase; |
43 | 45 |
boolean mInitialized; |
46 |
int mLastSolvingIndex; |
|
44 | 47 |
|
45 | 48 |
final int mScalingFactor; |
46 | 49 |
final int mNumAxis; |
... | ... | |
475 | 478 |
{ |
476 | 479 |
if( !mInitialized ) return null; |
477 | 480 |
|
481 |
if( mMoves==null ) mMoves = new ArrayList<>(); |
|
482 |
else mMoves.clear(); |
|
483 |
|
|
478 | 484 |
int[] data = new int[4]; |
479 | 485 |
byte level = mTablebase.retrievePacked(index); |
480 |
ArrayList<int[]> moves = new ArrayList<>(); |
|
481 | 486 |
int[] quats = getQuats(index); |
482 | 487 |
int numQuats = quats.length; |
483 | 488 |
int[] tmpQuats = new int[numQuats]; |
489 |
mLastSolvingIndex = index; |
|
484 | 490 |
|
485 | 491 |
while( !isSolved(index) ) |
486 | 492 |
{ |
... | ... | |
519 | 525 |
if( ((newLevel-level+1)%3) == 0 ) |
520 | 526 |
{ |
521 | 527 |
int[] tmpMove = newMove(ax,layer,angle); |
522 |
moves.add(tmpMove); |
|
528 |
mMoves.add(tmpMove);
|
|
523 | 529 |
index = childIndex; |
524 | 530 |
level = (level==0 ? 2 : (byte)(level-1)); |
525 | 531 |
found = true; |
... | ... | |
538 | 544 |
} |
539 | 545 |
} |
540 | 546 |
|
541 |
int[][] ret = convertMovesFromArray(moves); |
|
547 |
int[][] ret = convertMovesFromArray(mMoves);
|
|
542 | 548 |
return extraInfo(ret,extra); |
543 | 549 |
} |
544 | 550 |
|
... | ... | |
632 | 638 |
|
633 | 639 |
public void test(OperatingSystemInterface os) |
634 | 640 |
{ |
641 |
/* |
|
635 | 642 |
int index = 252373232; |
636 | 643 |
int[] q = getQuats(index); |
637 | 644 |
TablebaseHelpers.displayTable(q , "QUATS "); |
645 |
*/ |
|
646 |
|
|
647 |
int[] extra = new int[4]; |
|
648 |
|
|
649 |
for(int i=6525000; i<19958400; i++) |
|
650 |
{ |
|
651 |
int[][] sol = solution(i,extra,os); |
|
652 |
if( (i%1000)==0 ) android.util.Log.e("D ", "solving: "+i); |
|
653 |
} |
|
638 | 654 |
} |
639 | 655 |
} |
Also available in: Unified diff
Debugs for the crash in Dino6 solver