Revision 91792184
Added by Leszek Koltunski over 4 years ago
| src/main/java/org/distorted/objects/TwistyBandaged2Bar.java | ||
|---|---|---|
| 36 | 36 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 37 | 37 |
{
|
| 38 | 38 |
super(size, quat, texture, mesh, effects, moves, ObjectList.BAN2, res, scrWidth); |
| 39 |
} |
|
| 40 |
|
|
| 41 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 39 | 42 |
|
| 40 |
mStates = new ScrambleState[] |
|
| 43 |
ScrambleState[] getScrambleStates() |
|
| 44 |
{
|
|
| 45 |
if( mStates==null ) |
|
| 41 | 46 |
{
|
| 42 |
new ScrambleState( new int[][] { {} , {0,1,1, 0,-1,1, 2,1,2, 2,-1,2}, {} }),
|
|
| 43 |
new ScrambleState( new int[][] { {0,-1,1, 0,1,1, 0,2,1, 2,-1,1, 2,1,1, 2,2,1}, {0,2,1, 2,2,1} , {} }),
|
|
| 44 |
new ScrambleState( new int[][] { {}, {0,2,2, 2,2,2} , {0,-1,2, 0,1,2, 0,2,2, 2,-1,2, 2,1,2, 2,2,2} })
|
|
| 45 |
}; |
|
| 47 |
mStates = new ScrambleState[] |
|
| 48 |
{
|
|
| 49 |
new ScrambleState( new int[][] { {} , {0,1,1, 0,-1,1, 2,1,2, 2,-1,2}, {} }),
|
|
| 50 |
new ScrambleState( new int[][] { {0,-1,1, 0,1,1, 0,2,1, 2,-1,1, 2,1,1, 2,2,1}, {0,2,1, 2,2,1} , {} }),
|
|
| 51 |
new ScrambleState( new int[][] { {}, {0,2,2, 2,2,2} , {0,-1,2, 0,1,2, 0,2,2, 2,-1,2, 2,1,2, 2,2,2} })
|
|
| 52 |
}; |
|
| 53 |
} |
|
| 54 |
|
|
| 55 |
return mStates; |
|
| 46 | 56 |
} |
| 47 | 57 |
|
| 48 | 58 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/objects/TwistyBandaged3Plate.java | ||
|---|---|---|
| 36 | 36 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 37 | 37 |
{
|
| 38 | 38 |
super(size, quat, texture, mesh, effects, moves, ObjectList.BAN3, res, scrWidth); |
| 39 |
} |
|
| 40 |
|
|
| 41 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 39 | 42 |
|
| 40 |
mStates = new ScrambleState[]
|
|
| 43 |
ScrambleState[] getScrambleStates()
|
|
| 41 | 44 |
{
|
| 42 |
new ScrambleState( new int[][] {{ 2,-1, 1, 2, 1, 6 }, { 0,-1, 5, 0, 1, 3 }, { 2,-1, 2, 2, 1, 4 }} ),
|
|
| 43 |
new ScrambleState( new int[][] {{ 2, 1, 0 }, { }, { 2, 1,10, 2, 2, 7 }} ),
|
|
| 44 |
new ScrambleState( new int[][] {{ }, { 0,-1,11, 0, 2, 8 }, { 2, 1, 0 }} ),
|
|
| 45 |
new ScrambleState( new int[][] {{ 2, 1,12, 2, 2, 9 }, { 0,-1, 0 }, { }} ),
|
|
| 46 |
new ScrambleState( new int[][] {{ 2,-1,10, 2, 2,13 }, { }, { 2,-1, 0 }} ),
|
|
| 47 |
new ScrambleState( new int[][] {{ }, { 0, 1, 0 }, { 2,-1,11, 2, 2,14 }} ),
|
|
| 48 |
new ScrambleState( new int[][] {{ 2,-1, 0 }, { 0, 1,12, 0, 2,15 }, { }} ),
|
|
| 49 |
new ScrambleState( new int[][] {{ }, { 2,-2, 7, 2,-1, 7, 2, 1, 7, 2, 2, 7}, { 2,-1,10, 2, 2, 1 }} ),
|
|
| 50 |
new ScrambleState( new int[][] {{ 0,-2, 8, 0,-1, 8, 0, 1, 8, 0, 2, 8}, { 0, 1,11, 0, 2, 2 }, { }} ),
|
|
| 51 |
new ScrambleState( new int[][] {{ 2,-1,12, 2, 2, 3 }, { }, { 0,-2, 9, 0,-1, 9, 0, 1, 9, 0, 2, 9}} ),
|
|
| 52 |
new ScrambleState( new int[][] {{ 2,-1,13, 2, 1, 4 }, { 2,-2,10, 2,-1,10, 2, 1,10, 2, 2,10}, { 2,-1, 1, 2, 1, 7 }} ),
|
|
| 53 |
new ScrambleState( new int[][] {{ 0,-2,11, 0,-1,11, 0, 1,11, 0, 2,11}, { 0,-1, 8, 0, 1, 2 }, { 2,-1,14, 2, 1, 5 }} ),
|
|
| 54 |
new ScrambleState( new int[][] {{ 2,-1, 3, 2, 1, 9 }, { 0,-1, 6, 0, 1,15 }, { 0,-2,12, 0,-1,12, 0, 1,12, 0, 2,12}} ),
|
|
| 55 |
new ScrambleState( new int[][] {{ 2, 1,10, 2, 2, 4 }, { 2,-2,13, 2,-1,13, 2, 1,13, 2, 2,13}, { }} ),
|
|
| 56 |
new ScrambleState( new int[][] {{ 0,-2,14, 0,-1,14, 0, 1,14, 0, 2,14}, { }, { 2, 1,11, 2, 2, 5 }} ),
|
|
| 57 |
new ScrambleState( new int[][] {{ }, { 0,-1,12, 0, 2, 6 }, { 0,-2,15, 0,-1,15, 0, 1,15, 0, 2,15}} )
|
|
| 58 |
}; |
|
| 45 |
if( mStates==null ) |
|
| 46 |
{
|
|
| 47 |
mStates = new ScrambleState[] |
|
| 48 |
{
|
|
| 49 |
new ScrambleState( new int[][] {{ 2,-1, 1, 2, 1, 6 }, { 0,-1, 5, 0, 1, 3 }, { 2,-1, 2, 2, 1, 4 }} ),
|
|
| 50 |
new ScrambleState( new int[][] {{ 2, 1, 0 }, { }, { 2, 1,10, 2, 2, 7 }} ),
|
|
| 51 |
new ScrambleState( new int[][] {{ }, { 0,-1,11, 0, 2, 8 }, { 2, 1, 0 }} ),
|
|
| 52 |
new ScrambleState( new int[][] {{ 2, 1,12, 2, 2, 9 }, { 0,-1, 0 }, { }} ),
|
|
| 53 |
new ScrambleState( new int[][] {{ 2,-1,10, 2, 2,13 }, { }, { 2,-1, 0 }} ),
|
|
| 54 |
new ScrambleState( new int[][] {{ }, { 0, 1, 0 }, { 2,-1,11, 2, 2,14 }} ),
|
|
| 55 |
new ScrambleState( new int[][] {{ 2,-1, 0 }, { 0, 1,12, 0, 2,15 }, { }} ),
|
|
| 56 |
new ScrambleState( new int[][] {{ }, { 2,-2, 7, 2,-1, 7, 2, 1, 7, 2, 2, 7}, { 2,-1,10, 2, 2, 1 }} ),
|
|
| 57 |
new ScrambleState( new int[][] {{ 0,-2, 8, 0,-1, 8, 0, 1, 8, 0, 2, 8}, { 0, 1,11, 0, 2, 2 }, { }} ),
|
|
| 58 |
new ScrambleState( new int[][] {{ 2,-1,12, 2, 2, 3 }, { }, { 0,-2, 9, 0,-1, 9, 0, 1, 9, 0, 2, 9}} ),
|
|
| 59 |
new ScrambleState( new int[][] {{ 2,-1,13, 2, 1, 4 }, { 2,-2,10, 2,-1,10, 2, 1,10, 2, 2,10}, { 2,-1, 1, 2, 1, 7 }} ),
|
|
| 60 |
new ScrambleState( new int[][] {{ 0,-2,11, 0,-1,11, 0, 1,11, 0, 2,11}, { 0,-1, 8, 0, 1, 2 }, { 2,-1,14, 2, 1, 5 }} ),
|
|
| 61 |
new ScrambleState( new int[][] {{ 2,-1, 3, 2, 1, 9 }, { 0,-1, 6, 0, 1,15 }, { 0,-2,12, 0,-1,12, 0, 1,12, 0, 2,12}} ),
|
|
| 62 |
new ScrambleState( new int[][] {{ 2, 1,10, 2, 2, 4 }, { 2,-2,13, 2,-1,13, 2, 1,13, 2, 2,13}, { }} ),
|
|
| 63 |
new ScrambleState( new int[][] {{ 0,-2,14, 0,-1,14, 0, 1,14, 0, 2,14}, { }, { 2, 1,11, 2, 2, 5 }} ),
|
|
| 64 |
new ScrambleState( new int[][] {{ }, { 0,-1,12, 0, 2, 6 }, { 0,-2,15, 0,-1,15, 0, 1,15, 0, 2,15}} )
|
|
| 65 |
}; |
|
| 66 |
} |
|
| 67 |
|
|
| 68 |
return mStates; |
|
| 59 | 69 |
} |
| 60 | 70 |
|
| 61 | 71 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/objects/TwistyBandagedAbstract.java | ||
|---|---|---|
| 30 | 30 |
import org.distorted.library.type.Static3D; |
| 31 | 31 |
import org.distorted.library.type.Static4D; |
| 32 | 32 |
|
| 33 |
import java.util.Random; |
|
| 34 |
|
|
| 35 | 33 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 36 | 34 |
|
| 37 | 35 |
abstract class TwistyBandagedAbstract extends TwistyObject |
| ... | ... | |
| 63 | 61 |
private static final int NUM_STICKERS = 4; |
| 64 | 62 |
|
| 65 | 63 |
private int[] mBasicAngle; |
| 66 |
private int mCurrState; |
|
| 67 |
private int mIndexExcluded; |
|
| 68 |
private int[][] mScrambleTable; |
|
| 69 |
private int[] mNumOccurences; |
|
| 70 | 64 |
private Static4D[] mQuats; |
| 71 | 65 |
private ObjectSticker[] mStickers; |
| 72 | 66 |
private Static4D[] mInitQuats; |
| ... | ... | |
| 466 | 460 |
return getNumLayers(); |
| 467 | 461 |
} |
| 468 | 462 |
|
| 469 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 470 |
|
|
| 471 |
private void initializeScrambling() |
|
| 472 |
{
|
|
| 473 |
int numLayers = getNumLayers(); |
|
| 474 |
|
|
| 475 |
if( mScrambleTable ==null ) |
|
| 476 |
{
|
|
| 477 |
mScrambleTable = new int[NUM_AXIS][numLayers]; |
|
| 478 |
} |
|
| 479 |
if( mNumOccurences ==null ) |
|
| 480 |
{
|
|
| 481 |
int max=0; |
|
| 482 |
|
|
| 483 |
for (ScrambleState mState : mStates) |
|
| 484 |
{
|
|
| 485 |
int tmp = mState.getTotal(-1); |
|
| 486 |
if (max < tmp) max = tmp; |
|
| 487 |
} |
|
| 488 |
|
|
| 489 |
mNumOccurences = new int[max]; |
|
| 490 |
} |
|
| 491 |
|
|
| 492 |
for(int i=0; i<NUM_AXIS; i++) |
|
| 493 |
for(int j=0; j<numLayers; j++) mScrambleTable[i][j] = 0; |
|
| 494 |
} |
|
| 495 |
|
|
| 496 | 463 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 497 | 464 |
// PUBLIC API |
| 498 | 465 |
|
| 499 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 500 |
{
|
|
| 501 |
if( curr==0 ) |
|
| 502 |
{
|
|
| 503 |
mCurrState = 0; |
|
| 504 |
mIndexExcluded =-1; |
|
| 505 |
initializeScrambling(); |
|
| 506 |
} |
|
| 507 |
|
|
| 508 |
int[] info= mStates[mCurrState].getRandom(rnd, mIndexExcluded, mScrambleTable, mNumOccurences); |
|
| 509 |
|
|
| 510 |
scramble[curr][0] = info[0]; |
|
| 511 |
scramble[curr][1] = info[1]; |
|
| 512 |
scramble[curr][2] = info[2]; |
|
| 513 |
|
|
| 514 |
mCurrState = info[3]; |
|
| 515 |
mIndexExcluded = info[0]; |
|
| 516 |
} |
|
| 517 |
|
|
| 518 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 519 |
|
|
| 520 | 466 |
public Static3D[] getRotationAxis() |
| 521 | 467 |
{
|
| 522 | 468 |
return ROT_AXIS; |
| src/main/java/org/distorted/objects/TwistyBandagedEvil.java | ||
|---|---|---|
| 36 | 36 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 37 | 37 |
{
|
| 38 | 38 |
super(size, quat, texture, mesh, effects, moves, ObjectList.BAN4, res, scrWidth); |
| 39 |
} |
|
| 40 |
|
|
| 41 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 42 |
|
|
| 43 |
ScrambleState[] getScrambleStates() |
|
| 44 |
{
|
|
| 45 |
if( mStates==null ) |
|
| 46 |
{
|
|
| 47 |
mStates = new ScrambleState[] |
|
| 48 |
{
|
|
| 49 |
new ScrambleState( new int[][] {{2, 1, 1,2,-1, 2} , {2, 2,142,2,-1, 28} , {0, 1,114} }), //0
|
|
| 50 |
new ScrambleState( new int[][] {{2, 2, 2} , {2,-1,143} , {} }),
|
|
| 51 |
new ScrambleState( new int[][] {{2, 2, 1} , {} , {0, 1, 3,0, 2, 47} }),
|
|
| 52 |
new ScrambleState( new int[][] {{2, 1, 4} , {2, 1,132,2,-1,131} , {0, 1, 47,0,-1, 2} }),
|
|
| 53 |
new ScrambleState( new int[][] {{2,-1, 3} , {2, 1, 5,2,-1, 6} , {} }),
|
|
| 54 |
new ScrambleState( new int[][] {{} , {2, 2, 6,2,-1, 4} , {0, 1, 51} }),
|
|
| 55 |
new ScrambleState( new int[][] {{} , {2, 1, 4,2, 2, 5} , {2, 2, 7,2,-1, 80} }),
|
|
| 56 |
new ScrambleState( new int[][] {{2, 2, 8} , {} , {2, 1, 80,2, 2, 6} }),
|
|
| 57 |
new ScrambleState( new int[][] {{2, 2, 7} , {} , {0,-1, 9} }),
|
|
| 58 |
new ScrambleState( new int[][] {{2, 1, 10,2, 2, 11,2,-1, 12}, {} , {0, 1, 8} }),
|
|
| 59 |
new ScrambleState( new int[][] {{2, 1, 11,2, 2, 12,2,-1, 9}, {} , {0,-1,118} }), //10
|
|
| 60 |
new ScrambleState( new int[][] {{2, 1, 12,2, 2, 9,2,-1, 10}, {} , {2, 1, 77} }),
|
|
| 61 |
new ScrambleState( new int[][] {{2, 1, 9,2, 2, 10,2,-1, 11}, {} , {2, 1, 13,2, 2,143} }),
|
|
| 62 |
new ScrambleState( new int[][] {{2, 1, 14,2, 2, 15,2,-1, 16}, {2, 1, 57,2,-1, 58} , {2, 1,143,2,-1, 12} }),
|
|
| 63 |
new ScrambleState( new int[][] {{2, 1, 15,2, 2, 16,2,-1, 13}, {} , {2, 1, 41} }),
|
|
| 64 |
new ScrambleState( new int[][] {{2, 1, 16,2, 2, 13,2,-1, 14}, {} , {0, 1, 82} }),
|
|
| 65 |
new ScrambleState( new int[][] {{2, 1, 13,2, 2, 14,2,-1, 15}, {2, 1, 17,2,-1, 18} , {0, 1,111,0,-1,115} }),
|
|
| 66 |
new ScrambleState( new int[][] {{} , {2, 2, 18,2,-1, 16} , {0,-1,139} }),
|
|
| 67 |
new ScrambleState( new int[][] {{2, 1, 19,2,-1, 20} , {2, 1, 16,2, 2, 17} , {2, 1,142} }),
|
|
| 68 |
new ScrambleState( new int[][] {{2, 2, 20,2,-1, 18} , {} , {2, 1, 39,2, 2,140} }),
|
|
| 69 |
new ScrambleState( new int[][] {{2, 1, 18,2, 2, 19} , {2, 1, 21} , {} }), //20
|
|
| 70 |
new ScrambleState( new int[][] {{} , {2,-1, 20} , {0,-1, 22} }),
|
|
| 71 |
new ScrambleState( new int[][] {{2, 2, 23,2,-1, 24} , {} , {0, 1, 21} }),
|
|
| 72 |
new ScrambleState( new int[][] {{2, 1, 24,2, 2, 22} , {} , {2, 1, 92} }),
|
|
| 73 |
new ScrambleState( new int[][] {{2, 1, 22,2,-1, 23} , {} , {0, 1, 25} }),
|
|
| 74 |
new ScrambleState( new int[][] {{2, 1, 26,2, 2, 27} , {} , {0,-1, 24} }),
|
|
| 75 |
new ScrambleState( new int[][] {{2, 1, 27,2,-1, 25} , {2, 1, 74} , {} }),
|
|
| 76 |
new ScrambleState( new int[][] {{2, 2, 25,2,-1, 26} , {} , {2, 1, 28,2, 2,124} }),
|
|
| 77 |
new ScrambleState( new int[][] {{2, 1, 29,2, 2, 30,2,-1, 31}, {2,-1,142} , {2, 1,124,2,-1, 27} }),
|
|
| 78 |
new ScrambleState( new int[][] {{2, 1, 30,2, 2, 31,2,-1, 28}, {} , {2, 1,141} }),
|
|
| 79 |
new ScrambleState( new int[][] {{2, 1, 31,2, 2, 28,2,-1, 29}, {} , {0, 1,130} }), //30
|
|
| 80 |
new ScrambleState( new int[][] {{2, 1, 28,2, 2, 29,2,-1, 30}, {2, 1, 32,2,-1, 33} , {0, 1, 89,0,-1, 90} }),
|
|
| 81 |
new ScrambleState( new int[][] {{} , {2, 2, 33,2,-1, 31} , {0,-1,137} }),
|
|
| 82 |
new ScrambleState( new int[][] {{2, 1, 34} , {2, 1, 31,2, 2, 32} , {} }),
|
|
| 83 |
new ScrambleState( new int[][] {{2,-1, 33} , {} , {2, 1, 35} }),
|
|
| 84 |
new ScrambleState( new int[][] {{} , {2,-1, 36} , {2,-1, 34} }),
|
|
| 85 |
new ScrambleState( new int[][] {{} , {2, 1, 35} , {2,-1, 37} }),
|
|
| 86 |
new ScrambleState( new int[][] {{} , {2, 1, 38,2, 2, 93} , {2, 1, 36} }),
|
|
| 87 |
new ScrambleState( new int[][] {{2, 1, 39} , {2, 1, 93,2,-1, 37} , {} }),
|
|
| 88 |
new ScrambleState( new int[][] {{2,-1, 38} , {2, 1, 40,2,-1, 64} , {2, 1,140,2,-1, 19} }),
|
|
| 89 |
new ScrambleState( new int[][] {{2, 1, 41,2,-1, 42} , {2, 2, 64,2,-1, 39} , {} }), //40
|
|
| 90 |
new ScrambleState( new int[][] {{2, 2, 42,2,-1, 40} , {} , {2,-1, 14} }),
|
|
| 91 |
new ScrambleState( new int[][] {{2, 1, 40,2, 2, 41} , {} , {0, 1, 43,0, 2,128} }),
|
|
| 92 |
new ScrambleState( new int[][] {{2, 1, 44,2,-1, 45} , {2, 1,114,2, 2,113,2,-1, 86}, {0, 1,128,0,-1, 42} }),
|
|
| 93 |
new ScrambleState( new int[][] {{2, 2, 45,2,-1, 43} , {2, 1, 48,2,-1,108} , {2,-1, 81} }),
|
|
| 94 |
new ScrambleState( new int[][] {{2, 1, 43,2, 2, 44} , {} , {0, 1, 46} }),
|
|
| 95 |
new ScrambleState( new int[][] {{} , {2, 1, 47} , {0,-1, 45} }),
|
|
| 96 |
new ScrambleState( new int[][] {{} , {2,-1, 46} , {0, 2, 2,0,-1, 3} }),
|
|
| 97 |
new ScrambleState( new int[][] {{2,-1, 49} , {2, 2,108,2,-1, 44} , {} }),
|
|
| 98 |
new ScrambleState( new int[][] {{2, 1, 48} , {} , {0, 1, 50} }),
|
|
| 99 |
new ScrambleState( new int[][] {{} , {2, 1, 51,2, 2, 52} , {0,-1, 49} }), //50
|
|
| 100 |
new ScrambleState( new int[][] {{} , {2, 1, 52,2,-1, 50} , {0,-1, 5} }),
|
|
| 101 |
new ScrambleState( new int[][] {{} , {2, 2, 50,2,-1, 51} , {2,-1, 53} }),
|
|
| 102 |
new ScrambleState( new int[][] {{} , {2, 1, 54,2, 2, 55} , {2, 1, 52} }),
|
|
| 103 |
new ScrambleState( new int[][] {{} , {2, 1, 55,2,-1, 53} , {0,-1,104} }),
|
|
| 104 |
new ScrambleState( new int[][] {{} , {2, 2, 53,2,-1, 54} , {0, 2, 56,0,-1, 65} }),
|
|
| 105 |
new ScrambleState( new int[][] {{2, 1, 57} , {} , {0, 1, 65,0, 2, 55} }),
|
|
| 106 |
new ScrambleState( new int[][] {{2,-1, 56} , {2, 2, 58,2,-1, 13} , {} }),
|
|
| 107 |
new ScrambleState( new int[][] {{} , {2, 1, 13,2, 2, 57} , {2,-1, 59} }),
|
|
| 108 |
new ScrambleState( new int[][] {{2, 1, 60} , {} , {2, 1, 58} }),
|
|
| 109 |
new ScrambleState( new int[][] {{2,-1, 59} , {} , {2, 1, 61} }), //60
|
|
| 110 |
new ScrambleState( new int[][] {{2,-1, 62} , {} , {2,-1, 60} }),
|
|
| 111 |
new ScrambleState( new int[][] {{2, 1, 61} , {2,-1, 63} , {} }),
|
|
| 112 |
new ScrambleState( new int[][] {{} , {2, 1, 62} , {2, 1, 64} }),
|
|
| 113 |
new ScrambleState( new int[][] {{} , {2, 1, 39,2, 2, 40} , {2,-1, 63} }),
|
|
| 114 |
new ScrambleState( new int[][] {{2, 1, 66,2,-1, 67} , {2, 1, 78,2, 2, 79,2,-1, 80}, {0, 1, 55,0,-1, 56} }),
|
|
| 115 |
new ScrambleState( new int[][] {{2, 2, 67,2,-1, 65} , {2,-1,107} , {} }),
|
|
| 116 |
new ScrambleState( new int[][] {{2, 1, 65,2, 2, 66} , {} , {0, 1, 68} }),
|
|
| 117 |
new ScrambleState( new int[][] {{} , {2, 1, 69} , {0,-1, 67} }),
|
|
| 118 |
new ScrambleState( new int[][] {{} , {2,-1, 68} , {0,-1, 70} }),
|
|
| 119 |
new ScrambleState( new int[][] {{} , {2,-1, 71} , {0, 1, 69} }), //70
|
|
| 120 |
new ScrambleState( new int[][] {{2,-1, 72} , {2, 1, 70} , {} }),
|
|
| 121 |
new ScrambleState( new int[][] {{2, 1, 71} , {} , {0,-1, 73} }),
|
|
| 122 |
new ScrambleState( new int[][] {{2, 1, 74,2, 2, 75} , {} , {0, 1, 72} }),
|
|
| 123 |
new ScrambleState( new int[][] {{2, 1, 75,2,-1, 73} , {2,-1, 26} , {0, 1, 83,0,-1,138} }),
|
|
| 124 |
new ScrambleState( new int[][] {{2, 2, 73,2,-1, 74} , {2, 1, 76,2,-1, 77} , {} }),
|
|
| 125 |
new ScrambleState( new int[][] {{} , {2, 2, 77,2,-1, 75} , {0, 1, 78} }),
|
|
| 126 |
new ScrambleState( new int[][] {{} , {2, 1, 75,2, 2, 76} , {2,-1, 11} }),
|
|
| 127 |
new ScrambleState( new int[][] {{} , {2, 1, 79,2, 2, 80,2,-1, 65}, {0,-1, 76} }),
|
|
| 128 |
new ScrambleState( new int[][] {{} , {2, 1, 80,2, 2, 65,2,-1, 78}, {2,-1,110} }),
|
|
| 129 |
new ScrambleState( new int[][] {{2, 1, 81,2,-1, 82} , {2, 1, 65,2, 2, 78,2,-1, 79}, {2, 1, 6,2,-1, 7} }), //80
|
|
| 130 |
new ScrambleState( new int[][] {{2, 2, 82,2,-1, 80} , {} , {2, 1, 44} }),
|
|
| 131 |
new ScrambleState( new int[][] {{2, 1, 80,2, 2, 81} , {2, 1, 83,2,-1, 84} , {0,-1, 15} }),
|
|
| 132 |
new ScrambleState( new int[][] {{} , {2, 2, 84,2,-1, 82} , {0, 2,138,0,-1, 74} }),
|
|
| 133 |
new ScrambleState( new int[][] {{2, 1, 85} , {2, 1, 82,2, 2, 83} , {} }),
|
|
| 134 |
new ScrambleState( new int[][] {{2,-1, 84} , {} , {2, 1, 86,2, 2,119} }),
|
|
| 135 |
new ScrambleState( new int[][] {{2, 1, 87,2,-1, 88} , {2, 1, 43,2, 2,114,2,-1,113}, {2, 1,119,2,-1, 85} }),
|
|
| 136 |
new ScrambleState( new int[][] {{2, 2, 88,2,-1, 86} , {} , {2, 1, 94} }),
|
|
| 137 |
new ScrambleState( new int[][] {{2, 1, 86,2, 2, 87} , {2, 1, 89} , {} }),
|
|
| 138 |
new ScrambleState( new int[][] {{} , {2,-1, 88} , {0, 2, 90,0,-1, 31} }),
|
|
| 139 |
new ScrambleState( new int[][] {{2, 1, 91,2, 2, 92} , {} , {0, 1, 31,0, 2, 89} }), //90
|
|
| 140 |
new ScrambleState( new int[][] {{2, 1, 92,2,-1, 90} , {} , {0, 1, 93} }),
|
|
| 141 |
new ScrambleState( new int[][] {{2, 2, 90,2,-1, 91} , {} , {2,-1, 23} }),
|
|
| 142 |
new ScrambleState( new int[][] {{} , {2, 2, 37,2,-1, 38} , {0,-1, 91} }),
|
|
| 143 |
new ScrambleState( new int[][] {{} , {2,-1, 95} , {2,-1, 87} }),
|
|
| 144 |
new ScrambleState( new int[][] {{} , {2, 1, 94} , {2,-1, 96} }),
|
|
| 145 |
new ScrambleState( new int[][] {{} , {2, 1, 97} , {2, 1, 95} }),
|
|
| 146 |
new ScrambleState( new int[][] {{2, 1, 98} , {2,-1, 96} , {} }),
|
|
| 147 |
new ScrambleState( new int[][] {{2,-1, 97} , {} , {2,-1, 99} }),
|
|
| 148 |
new ScrambleState( new int[][] {{2, 2,100,2,-1,101} , {} , {2, 1, 98} }),
|
|
| 149 |
new ScrambleState( new int[][] {{2, 1,101,2, 2, 99} , {2, 1,111,2,-1,112} , {} }), //100
|
|
| 150 |
new ScrambleState( new int[][] {{2, 1, 99,2,-1,100} , {2, 1,102} , {2, 1,108,2,-1,109} }),
|
|
| 151 |
new ScrambleState( new int[][] {{2, 1,103,2,-1,104} , {2,-1,101} , {} }),
|
|
| 152 |
new ScrambleState( new int[][] {{2, 2,104,2,-1,102} , {} , {2,-1,105} }),
|
|
| 153 |
new ScrambleState( new int[][] {{2, 1,102,2, 2,103} , {} , {0, 1, 54} }),
|
|
| 154 |
new ScrambleState( new int[][] {{2,-1,106} , {} , {2, 1,103} }),
|
|
| 155 |
new ScrambleState( new int[][] {{2, 1,105} , {} , {2, 1,107} }),
|
|
| 156 |
new ScrambleState( new int[][] {{} , {2, 1, 66} , {2,-1,106} }),
|
|
| 157 |
new ScrambleState( new int[][] {{} , {2, 1, 44,2, 2, 48} , {2, 2,109,2,-1,101} }),
|
|
| 158 |
new ScrambleState( new int[][] {{2,-1,110} , {} , {2, 1,101,2, 2,108} }),
|
|
| 159 |
new ScrambleState( new int[][] {{2, 1,109} , {} , {2, 1, 79} }), //110
|
|
| 160 |
new ScrambleState( new int[][] {{} , {2, 2,112,2,-1,100} , {0, 2,115,0,-1, 16} }),
|
|
| 161 |
new ScrambleState( new int[][] {{} , {2, 1,100,2, 2,111} , {2, 1,113} }),
|
|
| 162 |
new ScrambleState( new int[][] {{} , {2, 1, 86,2, 2, 43,2,-1,114}, {2,-1,112} }),
|
|
| 163 |
new ScrambleState( new int[][] {{} , {2, 1,113,2, 2, 86,2,-1, 43}, {0,-1, 0} }),
|
|
| 164 |
new ScrambleState( new int[][] {{2, 2,116} , {} , {0, 1, 16,0, 2,111} }),
|
|
| 165 |
new ScrambleState( new int[][] {{2, 2,115} , {} , {2,-1,117} }),
|
|
| 166 |
new ScrambleState( new int[][] {{2, 1,118} , {} , {2, 1,116} }),
|
|
| 167 |
new ScrambleState( new int[][] {{2,-1,117} , {} , {0, 1, 10} }),
|
|
| 168 |
new ScrambleState( new int[][] {{} , {2, 1,120,2, 2,121,2,-1,122}, {2, 2, 85,2,-1, 86} }),
|
|
| 169 |
new ScrambleState( new int[][] {{} , {2, 1,121,2, 2,122,2,-1,119}, {2,-1,129} }), //120
|
|
| 170 |
new ScrambleState( new int[][] {{} , {2, 1,122,2, 2,119,2,-1,120}, {0, 1,125} }),
|
|
| 171 |
new ScrambleState( new int[][] {{} , {2, 1,119,2, 2,120,2,-1,121}, {0,-1,123} }),
|
|
| 172 |
new ScrambleState( new int[][] {{} , {2, 2,124} , {0, 1,122} }),
|
|
| 173 |
new ScrambleState( new int[][] {{} , {2, 2,123} , {2, 2, 27,2,-1, 28} }),
|
|
| 174 |
new ScrambleState( new int[][] {{} , {2, 1,126} , {0,-1,121} }),
|
|
| 175 |
new ScrambleState( new int[][] {{} , {2,-1,125} , {2,-1,127} }),
|
|
| 176 |
new ScrambleState( new int[][] {{} , {2, 2,128} , {2, 1,126} }),
|
|
| 177 |
new ScrambleState( new int[][] {{} , {2, 2,127} , {0, 2, 42,0,-1, 43} }),
|
|
| 178 |
new ScrambleState( new int[][] {{2, 2,130,2,-1,131} , {} , {2, 1,120} }),
|
|
| 179 |
new ScrambleState( new int[][] {{2, 1,131,2, 2,129} , {} , {0,-1, 30} }), //130
|
|
| 180 |
new ScrambleState( new int[][] {{2, 1,129,2,-1,130} , {2, 1, 3,2, 2,132} , {} }),
|
|
| 181 |
new ScrambleState( new int[][] {{} , {2, 2,131,2,-1, 3} , {0,-1,133} }),
|
|
| 182 |
new ScrambleState( new int[][] {{} , {2,-1,134} , {0, 1,132} }),
|
|
| 183 |
new ScrambleState( new int[][] {{2,-1,135} , {2, 1,133} , {} }),
|
|
| 184 |
new ScrambleState( new int[][] {{2, 1,134} , {} , {0,-1,136} }),
|
|
| 185 |
new ScrambleState( new int[][] {{2, 1,137} , {} , {0, 1,135} }),
|
|
| 186 |
new ScrambleState( new int[][] {{2,-1,136} , {} , {0, 1, 32} }),
|
|
| 187 |
new ScrambleState( new int[][] {{2, 1,139} , {} , {0, 1, 74,0, 2, 83} }),
|
|
| 188 |
new ScrambleState( new int[][] {{2,-1,138} , {} , {0, 1, 17} }),
|
|
| 189 |
new ScrambleState( new int[][] {{} , {2, 1,141} , {2, 2, 19,2,-1, 39} }), //140
|
|
| 190 |
new ScrambleState( new int[][] {{} , {2,-1,140} , {2,-1, 29} }),
|
|
| 191 |
new ScrambleState( new int[][] {{} , {2, 1, 28} , {2,-1, 18} }),
|
|
| 192 |
new ScrambleState( new int[][] {{} , {2, 1, 1} , {2, 2, 12,2,-1, 13} })
|
|
| 193 |
}; |
|
| 194 |
} |
|
| 39 | 195 |
|
| 40 |
mStates = new ScrambleState[] |
|
| 41 |
{
|
|
| 42 |
new ScrambleState( new int[][] {{2, 1, 1,2,-1, 2} , {2, 2,142,2,-1, 28} , {0, 1,114} }), //0
|
|
| 43 |
new ScrambleState( new int[][] {{2, 2, 2} , {2,-1,143} , {} }),
|
|
| 44 |
new ScrambleState( new int[][] {{2, 2, 1} , {} , {0, 1, 3,0, 2, 47} }),
|
|
| 45 |
new ScrambleState( new int[][] {{2, 1, 4} , {2, 1,132,2,-1,131} , {0, 1, 47,0,-1, 2} }),
|
|
| 46 |
new ScrambleState( new int[][] {{2,-1, 3} , {2, 1, 5,2,-1, 6} , {} }),
|
|
| 47 |
new ScrambleState( new int[][] {{} , {2, 2, 6,2,-1, 4} , {0, 1, 51} }),
|
|
| 48 |
new ScrambleState( new int[][] {{} , {2, 1, 4,2, 2, 5} , {2, 2, 7,2,-1, 80} }),
|
|
| 49 |
new ScrambleState( new int[][] {{2, 2, 8} , {} , {2, 1, 80,2, 2, 6} }),
|
|
| 50 |
new ScrambleState( new int[][] {{2, 2, 7} , {} , {0,-1, 9} }),
|
|
| 51 |
new ScrambleState( new int[][] {{2, 1, 10,2, 2, 11,2,-1, 12}, {} , {0, 1, 8} }),
|
|
| 52 |
new ScrambleState( new int[][] {{2, 1, 11,2, 2, 12,2,-1, 9}, {} , {0,-1,118} }), //10
|
|
| 53 |
new ScrambleState( new int[][] {{2, 1, 12,2, 2, 9,2,-1, 10}, {} , {2, 1, 77} }),
|
|
| 54 |
new ScrambleState( new int[][] {{2, 1, 9,2, 2, 10,2,-1, 11}, {} , {2, 1, 13,2, 2,143} }),
|
|
| 55 |
new ScrambleState( new int[][] {{2, 1, 14,2, 2, 15,2,-1, 16}, {2, 1, 57,2,-1, 58} , {2, 1,143,2,-1, 12} }),
|
|
| 56 |
new ScrambleState( new int[][] {{2, 1, 15,2, 2, 16,2,-1, 13}, {} , {2, 1, 41} }),
|
|
| 57 |
new ScrambleState( new int[][] {{2, 1, 16,2, 2, 13,2,-1, 14}, {} , {0, 1, 82} }),
|
|
| 58 |
new ScrambleState( new int[][] {{2, 1, 13,2, 2, 14,2,-1, 15}, {2, 1, 17,2,-1, 18} , {0, 1,111,0,-1,115} }),
|
|
| 59 |
new ScrambleState( new int[][] {{} , {2, 2, 18,2,-1, 16} , {0,-1,139} }),
|
|
| 60 |
new ScrambleState( new int[][] {{2, 1, 19,2,-1, 20} , {2, 1, 16,2, 2, 17} , {2, 1,142} }),
|
|
| 61 |
new ScrambleState( new int[][] {{2, 2, 20,2,-1, 18} , {} , {2, 1, 39,2, 2,140} }),
|
|
| 62 |
new ScrambleState( new int[][] {{2, 1, 18,2, 2, 19} , {2, 1, 21} , {} }), //20
|
|
| 63 |
new ScrambleState( new int[][] {{} , {2,-1, 20} , {0,-1, 22} }),
|
|
| 64 |
new ScrambleState( new int[][] {{2, 2, 23,2,-1, 24} , {} , {0, 1, 21} }),
|
|
| 65 |
new ScrambleState( new int[][] {{2, 1, 24,2, 2, 22} , {} , {2, 1, 92} }),
|
|
| 66 |
new ScrambleState( new int[][] {{2, 1, 22,2,-1, 23} , {} , {0, 1, 25} }),
|
|
| 67 |
new ScrambleState( new int[][] {{2, 1, 26,2, 2, 27} , {} , {0,-1, 24} }),
|
|
| 68 |
new ScrambleState( new int[][] {{2, 1, 27,2,-1, 25} , {2, 1, 74} , {} }),
|
|
| 69 |
new ScrambleState( new int[][] {{2, 2, 25,2,-1, 26} , {} , {2, 1, 28,2, 2,124} }),
|
|
| 70 |
new ScrambleState( new int[][] {{2, 1, 29,2, 2, 30,2,-1, 31}, {2,-1,142} , {2, 1,124,2,-1, 27} }),
|
|
| 71 |
new ScrambleState( new int[][] {{2, 1, 30,2, 2, 31,2,-1, 28}, {} , {2, 1,141} }),
|
|
| 72 |
new ScrambleState( new int[][] {{2, 1, 31,2, 2, 28,2,-1, 29}, {} , {0, 1,130} }), //30
|
|
| 73 |
new ScrambleState( new int[][] {{2, 1, 28,2, 2, 29,2,-1, 30}, {2, 1, 32,2,-1, 33} , {0, 1, 89,0,-1, 90} }),
|
|
| 74 |
new ScrambleState( new int[][] {{} , {2, 2, 33,2,-1, 31} , {0,-1,137} }),
|
|
| 75 |
new ScrambleState( new int[][] {{2, 1, 34} , {2, 1, 31,2, 2, 32} , {} }),
|
|
| 76 |
new ScrambleState( new int[][] {{2,-1, 33} , {} , {2, 1, 35} }),
|
|
| 77 |
new ScrambleState( new int[][] {{} , {2,-1, 36} , {2,-1, 34} }),
|
|
| 78 |
new ScrambleState( new int[][] {{} , {2, 1, 35} , {2,-1, 37} }),
|
|
| 79 |
new ScrambleState( new int[][] {{} , {2, 1, 38,2, 2, 93} , {2, 1, 36} }),
|
|
| 80 |
new ScrambleState( new int[][] {{2, 1, 39} , {2, 1, 93,2,-1, 37} , {} }),
|
|
| 81 |
new ScrambleState( new int[][] {{2,-1, 38} , {2, 1, 40,2,-1, 64} , {2, 1,140,2,-1, 19} }),
|
|
| 82 |
new ScrambleState( new int[][] {{2, 1, 41,2,-1, 42} , {2, 2, 64,2,-1, 39} , {} }), //40
|
|
| 83 |
new ScrambleState( new int[][] {{2, 2, 42,2,-1, 40} , {} , {2,-1, 14} }),
|
|
| 84 |
new ScrambleState( new int[][] {{2, 1, 40,2, 2, 41} , {} , {0, 1, 43,0, 2,128} }),
|
|
| 85 |
new ScrambleState( new int[][] {{2, 1, 44,2,-1, 45} , {2, 1,114,2, 2,113,2,-1, 86}, {0, 1,128,0,-1, 42} }),
|
|
| 86 |
new ScrambleState( new int[][] {{2, 2, 45,2,-1, 43} , {2, 1, 48,2,-1,108} , {2,-1, 81} }),
|
|
| 87 |
new ScrambleState( new int[][] {{2, 1, 43,2, 2, 44} , {} , {0, 1, 46} }),
|
|
| 88 |
new ScrambleState( new int[][] {{} , {2, 1, 47} , {0,-1, 45} }),
|
|
| 89 |
new ScrambleState( new int[][] {{} , {2,-1, 46} , {0, 2, 2,0,-1, 3} }),
|
|
| 90 |
new ScrambleState( new int[][] {{2,-1, 49} , {2, 2,108,2,-1, 44} , {} }),
|
|
| 91 |
new ScrambleState( new int[][] {{2, 1, 48} , {} , {0, 1, 50} }),
|
|
| 92 |
new ScrambleState( new int[][] {{} , {2, 1, 51,2, 2, 52} , {0,-1, 49} }), //50
|
|
| 93 |
new ScrambleState( new int[][] {{} , {2, 1, 52,2,-1, 50} , {0,-1, 5} }),
|
|
| 94 |
new ScrambleState( new int[][] {{} , {2, 2, 50,2,-1, 51} , {2,-1, 53} }),
|
|
| 95 |
new ScrambleState( new int[][] {{} , {2, 1, 54,2, 2, 55} , {2, 1, 52} }),
|
|
| 96 |
new ScrambleState( new int[][] {{} , {2, 1, 55,2,-1, 53} , {0,-1,104} }),
|
|
| 97 |
new ScrambleState( new int[][] {{} , {2, 2, 53,2,-1, 54} , {0, 2, 56,0,-1, 65} }),
|
|
| 98 |
new ScrambleState( new int[][] {{2, 1, 57} , {} , {0, 1, 65,0, 2, 55} }),
|
|
| 99 |
new ScrambleState( new int[][] {{2,-1, 56} , {2, 2, 58,2,-1, 13} , {} }),
|
|
| 100 |
new ScrambleState( new int[][] {{} , {2, 1, 13,2, 2, 57} , {2,-1, 59} }),
|
|
| 101 |
new ScrambleState( new int[][] {{2, 1, 60} , {} , {2, 1, 58} }),
|
|
| 102 |
new ScrambleState( new int[][] {{2,-1, 59} , {} , {2, 1, 61} }), //60
|
|
| 103 |
new ScrambleState( new int[][] {{2,-1, 62} , {} , {2,-1, 60} }),
|
|
| 104 |
new ScrambleState( new int[][] {{2, 1, 61} , {2,-1, 63} , {} }),
|
|
| 105 |
new ScrambleState( new int[][] {{} , {2, 1, 62} , {2, 1, 64} }),
|
|
| 106 |
new ScrambleState( new int[][] {{} , {2, 1, 39,2, 2, 40} , {2,-1, 63} }),
|
|
| 107 |
new ScrambleState( new int[][] {{2, 1, 66,2,-1, 67} , {2, 1, 78,2, 2, 79,2,-1, 80}, {0, 1, 55,0,-1, 56} }),
|
|
| 108 |
new ScrambleState( new int[][] {{2, 2, 67,2,-1, 65} , {2,-1,107} , {} }),
|
|
| 109 |
new ScrambleState( new int[][] {{2, 1, 65,2, 2, 66} , {} , {0, 1, 68} }),
|
|
| 110 |
new ScrambleState( new int[][] {{} , {2, 1, 69} , {0,-1, 67} }),
|
|
| 111 |
new ScrambleState( new int[][] {{} , {2,-1, 68} , {0,-1, 70} }),
|
|
| 112 |
new ScrambleState( new int[][] {{} , {2,-1, 71} , {0, 1, 69} }), //70
|
|
| 113 |
new ScrambleState( new int[][] {{2,-1, 72} , {2, 1, 70} , {} }),
|
|
| 114 |
new ScrambleState( new int[][] {{2, 1, 71} , {} , {0,-1, 73} }),
|
|
| 115 |
new ScrambleState( new int[][] {{2, 1, 74,2, 2, 75} , {} , {0, 1, 72} }),
|
|
| 116 |
new ScrambleState( new int[][] {{2, 1, 75,2,-1, 73} , {2,-1, 26} , {0, 1, 83,0,-1,138} }),
|
|
| 117 |
new ScrambleState( new int[][] {{2, 2, 73,2,-1, 74} , {2, 1, 76,2,-1, 77} , {} }),
|
|
| 118 |
new ScrambleState( new int[][] {{} , {2, 2, 77,2,-1, 75} , {0, 1, 78} }),
|
|
| 119 |
new ScrambleState( new int[][] {{} , {2, 1, 75,2, 2, 76} , {2,-1, 11} }),
|
|
| 120 |
new ScrambleState( new int[][] {{} , {2, 1, 79,2, 2, 80,2,-1, 65}, {0,-1, 76} }),
|
|
| 121 |
new ScrambleState( new int[][] {{} , {2, 1, 80,2, 2, 65,2,-1, 78}, {2,-1,110} }),
|
|
| 122 |
new ScrambleState( new int[][] {{2, 1, 81,2,-1, 82} , {2, 1, 65,2, 2, 78,2,-1, 79}, {2, 1, 6,2,-1, 7} }), //80
|
|
| 123 |
new ScrambleState( new int[][] {{2, 2, 82,2,-1, 80} , {} , {2, 1, 44} }),
|
|
| 124 |
new ScrambleState( new int[][] {{2, 1, 80,2, 2, 81} , {2, 1, 83,2,-1, 84} , {0,-1, 15} }),
|
|
| 125 |
new ScrambleState( new int[][] {{} , {2, 2, 84,2,-1, 82} , {0, 2,138,0,-1, 74} }),
|
|
| 126 |
new ScrambleState( new int[][] {{2, 1, 85} , {2, 1, 82,2, 2, 83} , {} }),
|
|
| 127 |
new ScrambleState( new int[][] {{2,-1, 84} , {} , {2, 1, 86,2, 2,119} }),
|
|
| 128 |
new ScrambleState( new int[][] {{2, 1, 87,2,-1, 88} , {2, 1, 43,2, 2,114,2,-1,113}, {2, 1,119,2,-1, 85} }),
|
|
| 129 |
new ScrambleState( new int[][] {{2, 2, 88,2,-1, 86} , {} , {2, 1, 94} }),
|
|
| 130 |
new ScrambleState( new int[][] {{2, 1, 86,2, 2, 87} , {2, 1, 89} , {} }),
|
|
| 131 |
new ScrambleState( new int[][] {{} , {2,-1, 88} , {0, 2, 90,0,-1, 31} }),
|
|
| 132 |
new ScrambleState( new int[][] {{2, 1, 91,2, 2, 92} , {} , {0, 1, 31,0, 2, 89} }), //90
|
|
| 133 |
new ScrambleState( new int[][] {{2, 1, 92,2,-1, 90} , {} , {0, 1, 93} }),
|
|
| 134 |
new ScrambleState( new int[][] {{2, 2, 90,2,-1, 91} , {} , {2,-1, 23} }),
|
|
| 135 |
new ScrambleState( new int[][] {{} , {2, 2, 37,2,-1, 38} , {0,-1, 91} }),
|
|
| 136 |
new ScrambleState( new int[][] {{} , {2,-1, 95} , {2,-1, 87} }),
|
|
| 137 |
new ScrambleState( new int[][] {{} , {2, 1, 94} , {2,-1, 96} }),
|
|
| 138 |
new ScrambleState( new int[][] {{} , {2, 1, 97} , {2, 1, 95} }),
|
|
| 139 |
new ScrambleState( new int[][] {{2, 1, 98} , {2,-1, 96} , {} }),
|
|
| 140 |
new ScrambleState( new int[][] {{2,-1, 97} , {} , {2,-1, 99} }),
|
|
| 141 |
new ScrambleState( new int[][] {{2, 2,100,2,-1,101} , {} , {2, 1, 98} }),
|
|
| 142 |
new ScrambleState( new int[][] {{2, 1,101,2, 2, 99} , {2, 1,111,2,-1,112} , {} }), //100
|
|
| 143 |
new ScrambleState( new int[][] {{2, 1, 99,2,-1,100} , {2, 1,102} , {2, 1,108,2,-1,109} }),
|
|
| 144 |
new ScrambleState( new int[][] {{2, 1,103,2,-1,104} , {2,-1,101} , {} }),
|
|
| 145 |
new ScrambleState( new int[][] {{2, 2,104,2,-1,102} , {} , {2,-1,105} }),
|
|
| 146 |
new ScrambleState( new int[][] {{2, 1,102,2, 2,103} , {} , {0, 1, 54} }),
|
|
| 147 |
new ScrambleState( new int[][] {{2,-1,106} , {} , {2, 1,103} }),
|
|
| 148 |
new ScrambleState( new int[][] {{2, 1,105} , {} , {2, 1,107} }),
|
|
| 149 |
new ScrambleState( new int[][] {{} , {2, 1, 66} , {2,-1,106} }),
|
|
| 150 |
new ScrambleState( new int[][] {{} , {2, 1, 44,2, 2, 48} , {2, 2,109,2,-1,101} }),
|
|
| 151 |
new ScrambleState( new int[][] {{2,-1,110} , {} , {2, 1,101,2, 2,108} }),
|
|
| 152 |
new ScrambleState( new int[][] {{2, 1,109} , {} , {2, 1, 79} }), //110
|
|
| 153 |
new ScrambleState( new int[][] {{} , {2, 2,112,2,-1,100} , {0, 2,115,0,-1, 16} }),
|
|
| 154 |
new ScrambleState( new int[][] {{} , {2, 1,100,2, 2,111} , {2, 1,113} }),
|
|
| 155 |
new ScrambleState( new int[][] {{} , {2, 1, 86,2, 2, 43,2,-1,114}, {2,-1,112} }),
|
|
| 156 |
new ScrambleState( new int[][] {{} , {2, 1,113,2, 2, 86,2,-1, 43}, {0,-1, 0} }),
|
|
| 157 |
new ScrambleState( new int[][] {{2, 2,116} , {} , {0, 1, 16,0, 2,111} }),
|
|
| 158 |
new ScrambleState( new int[][] {{2, 2,115} , {} , {2,-1,117} }),
|
|
| 159 |
new ScrambleState( new int[][] {{2, 1,118} , {} , {2, 1,116} }),
|
|
| 160 |
new ScrambleState( new int[][] {{2,-1,117} , {} , {0, 1, 10} }),
|
|
| 161 |
new ScrambleState( new int[][] {{} , {2, 1,120,2, 2,121,2,-1,122}, {2, 2, 85,2,-1, 86} }),
|
|
| 162 |
new ScrambleState( new int[][] {{} , {2, 1,121,2, 2,122,2,-1,119}, {2,-1,129} }), //120
|
|
| 163 |
new ScrambleState( new int[][] {{} , {2, 1,122,2, 2,119,2,-1,120}, {0, 1,125} }),
|
|
| 164 |
new ScrambleState( new int[][] {{} , {2, 1,119,2, 2,120,2,-1,121}, {0,-1,123} }),
|
|
| 165 |
new ScrambleState( new int[][] {{} , {2, 2,124} , {0, 1,122} }),
|
|
| 166 |
new ScrambleState( new int[][] {{} , {2, 2,123} , {2, 2, 27,2,-1, 28} }),
|
|
| 167 |
new ScrambleState( new int[][] {{} , {2, 1,126} , {0,-1,121} }),
|
|
| 168 |
new ScrambleState( new int[][] {{} , {2,-1,125} , {2,-1,127} }),
|
|
| 169 |
new ScrambleState( new int[][] {{} , {2, 2,128} , {2, 1,126} }),
|
|
| 170 |
new ScrambleState( new int[][] {{} , {2, 2,127} , {0, 2, 42,0,-1, 43} }),
|
|
| 171 |
new ScrambleState( new int[][] {{2, 2,130,2,-1,131} , {} , {2, 1,120} }),
|
|
| 172 |
new ScrambleState( new int[][] {{2, 1,131,2, 2,129} , {} , {0,-1, 30} }), //130
|
|
| 173 |
new ScrambleState( new int[][] {{2, 1,129,2,-1,130} , {2, 1, 3,2, 2,132} , {} }),
|
|
| 174 |
new ScrambleState( new int[][] {{} , {2, 2,131,2,-1, 3} , {0,-1,133} }),
|
|
| 175 |
new ScrambleState( new int[][] {{} , {2,-1,134} , {0, 1,132} }),
|
|
| 176 |
new ScrambleState( new int[][] {{2,-1,135} , {2, 1,133} , {} }),
|
|
| 177 |
new ScrambleState( new int[][] {{2, 1,134} , {} , {0,-1,136} }),
|
|
| 178 |
new ScrambleState( new int[][] {{2, 1,137} , {} , {0, 1,135} }),
|
|
| 179 |
new ScrambleState( new int[][] {{2,-1,136} , {} , {0, 1, 32} }),
|
|
| 180 |
new ScrambleState( new int[][] {{2, 1,139} , {} , {0, 1, 74,0, 2, 83} }),
|
|
| 181 |
new ScrambleState( new int[][] {{2,-1,138} , {} , {0, 1, 17} }),
|
|
| 182 |
new ScrambleState( new int[][] {{} , {2, 1,141} , {2, 2, 19,2,-1, 39} }), //140
|
|
| 183 |
new ScrambleState( new int[][] {{} , {2,-1,140} , {2,-1, 29} }),
|
|
| 184 |
new ScrambleState( new int[][] {{} , {2, 1, 28} , {2,-1, 18} }),
|
|
| 185 |
new ScrambleState( new int[][] {{} , {2, 1, 1} , {2, 2, 12,2,-1, 13} })
|
|
| 186 |
}; |
|
| 196 |
return mStates; |
|
| 187 | 197 |
} |
| 198 |
|
|
| 188 | 199 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 189 | 200 |
|
| 190 | 201 |
float[][] getPositions() |
| src/main/java/org/distorted/objects/TwistyBandagedFused.java | ||
|---|---|---|
| 36 | 36 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 37 | 37 |
{
|
| 38 | 38 |
super(size, quat, texture, mesh, effects, moves, ObjectList.BAN1, res, scrWidth); |
| 39 |
} |
|
| 39 | 40 |
|
| 40 |
int[] tmp = {0,-1,0, 0,1,0, 0,2,0, 2,-1,0, 2,1,0, 2,2,0};
|
|
| 41 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
| 41 | 42 |
|
| 42 |
mStates = new ScrambleState[] |
|
| 43 |
ScrambleState[] getScrambleStates() |
|
| 44 |
{
|
|
| 45 |
if( mStates==null ) |
|
| 43 | 46 |
{
|
| 44 |
new ScrambleState( new int[][] {tmp,tmp,tmp} )
|
|
| 45 |
}; |
|
| 47 |
int[] tmp = {0,-1,0, 0,1,0, 0,2,0, 2,-1,0, 2,1,0, 2,2,0};
|
|
| 48 |
|
|
| 49 |
mStates = new ScrambleState[] |
|
| 50 |
{
|
|
| 51 |
new ScrambleState( new int[][] {tmp,tmp,tmp} )
|
|
| 52 |
}; |
|
| 53 |
} |
|
| 54 |
|
|
| 55 |
return mStates; |
|
| 46 | 56 |
} |
| 47 | 57 |
|
| 48 | 58 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/objects/TwistyCube.java | ||
|---|---|---|
| 31 | 31 |
import org.distorted.library.type.Static4D; |
| 32 | 32 |
import org.distorted.main.R; |
| 33 | 33 |
|
| 34 |
import java.util.Random; |
|
| 35 |
|
|
| 36 | 34 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 37 | 35 |
|
| 38 | 36 |
class TwistyCube extends TwistyObject |
| ... | ... | |
| 51 | 49 |
COLOR_RED , COLOR_ORANGE |
| 52 | 50 |
}; |
| 53 | 51 |
|
| 54 |
private int mCurrState; |
|
| 55 |
private int mIndexExcluded; |
|
| 56 |
private final ScrambleState[] mStates; |
|
| 57 |
private int[][] mScrambleTable; |
|
| 58 |
private int[] mNumOccurences; |
|
| 52 |
private ScrambleState[] mStates; |
|
| 59 | 53 |
private Static4D[] mQuats; |
| 60 | 54 |
private int[] mBasicAngle; |
| 61 | 55 |
private ObjectSticker[] mStickers; |
| ... | ... | |
| 66 | 60 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 67 | 61 |
{
|
| 68 | 62 |
super(size, size, quat, texture, mesh, effects, moves, ObjectList.CUBE, res, scrWidth); |
| 63 |
} |
|
| 69 | 64 |
|
| 70 |
int[][] m = new int[16][]; |
|
| 71 |
for(int i=1; i<16; i++) m[i] = createEdges(size,i); |
|
| 65 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 72 | 66 |
|
| 73 |
mStates = new ScrambleState[] // built so that all 3 axes must be present in every 4 consecutive moves |
|
| 67 |
ScrambleState[] getScrambleStates() |
|
| 68 |
{
|
|
| 69 |
if( mStates==null ) |
|
| 74 | 70 |
{
|
| 75 |
new ScrambleState( new int[][] { m[ 1], m[ 2], m[ 3] } ), // 0
|
|
| 76 |
new ScrambleState( new int[][] { null, m[ 4], m[ 5] } ), // x
|
|
| 77 |
new ScrambleState( new int[][] { m[ 6], null, m[ 7] } ), // y
|
|
| 78 |
new ScrambleState( new int[][] { m[ 8], m[ 8], null } ), // z
|
|
| 79 |
new ScrambleState( new int[][] { m[10], null, m[ 7] } ), // xy
|
|
| 80 |
new ScrambleState( new int[][] { m[11], m[ 9], null } ), // xz
|
|
| 81 |
new ScrambleState( new int[][] { null, m[12], m[ 5] } ), // yx
|
|
| 82 |
new ScrambleState( new int[][] { m[ 8], m[13], null } ), // yz
|
|
| 83 |
new ScrambleState( new int[][] { null, m[ 4], m[14] } ), // zx
|
|
| 84 |
new ScrambleState( new int[][] { m[ 6], null, m[15] } ), // zy
|
|
| 85 |
new ScrambleState( new int[][] { null, null, m[ 5] } ), // xyx
|
|
| 86 |
new ScrambleState( new int[][] { null, m[ 4], null } ), // xzx
|
|
| 87 |
new ScrambleState( new int[][] { null, null, m[ 7] } ), // yxy
|
|
| 88 |
new ScrambleState( new int[][] { m[ 6], null, null } ), // yzy
|
|
| 89 |
new ScrambleState( new int[][] { null, m[ 9], null } ), // zxz
|
|
| 90 |
new ScrambleState( new int[][] { m[ 8], null, null } ), // zyz
|
|
| 91 |
}; |
|
| 71 |
int size = getNumLayers(); |
|
| 72 |
int[][] m = new int[16][]; |
|
| 73 |
for(int i=1; i<16; i++) m[i] = createEdges(size,i); |
|
| 74 |
|
|
| 75 |
mStates = new ScrambleState[] |
|
| 76 |
{
|
|
| 77 |
new ScrambleState( new int[][] { m[ 1], m[ 2], m[ 3] } ), // 0
|
|
| 78 |
new ScrambleState( new int[][] { null, m[ 4], m[ 5] } ), // x
|
|
| 79 |
new ScrambleState( new int[][] { m[ 6], null, m[ 7] } ), // y
|
|
| 80 |
new ScrambleState( new int[][] { m[ 8], m[ 8], null } ), // z
|
|
| 81 |
new ScrambleState( new int[][] { m[10], null, m[ 7] } ), // xy
|
|
| 82 |
new ScrambleState( new int[][] { m[11], m[ 9], null } ), // xz
|
|
| 83 |
new ScrambleState( new int[][] { null, m[12], m[ 5] } ), // yx
|
|
| 84 |
new ScrambleState( new int[][] { m[ 8], m[13], null } ), // yz
|
|
| 85 |
new ScrambleState( new int[][] { null, m[ 4], m[14] } ), // zx
|
|
| 86 |
new ScrambleState( new int[][] { m[ 6], null, m[15] } ), // zy
|
|
| 87 |
new ScrambleState( new int[][] { null, null, m[ 5] } ), // xyx
|
|
| 88 |
new ScrambleState( new int[][] { null, m[ 4], null } ), // xzx
|
|
| 89 |
new ScrambleState( new int[][] { null, null, m[ 7] } ), // yxy
|
|
| 90 |
new ScrambleState( new int[][] { m[ 6], null, null } ), // yzy
|
|
| 91 |
new ScrambleState( new int[][] { null, m[ 9], null } ), // zxz
|
|
| 92 |
new ScrambleState( new int[][] { m[ 8], null, null } ), // zyz
|
|
| 93 |
}; |
|
| 94 |
} |
|
| 95 |
|
|
| 96 |
return mStates; |
|
| 92 | 97 |
} |
| 93 | 98 |
|
| 94 | 99 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 368 | 373 |
return mBasicAngle; |
| 369 | 374 |
} |
| 370 | 375 |
|
| 371 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 372 |
|
|
| 373 |
private void initializeScrambling() |
|
| 374 |
{
|
|
| 375 |
int numLayers = getNumLayers(); |
|
| 376 |
|
|
| 377 |
if( mScrambleTable ==null ) |
|
| 378 |
{
|
|
| 379 |
mScrambleTable = new int[NUM_AXIS][numLayers]; |
|
| 380 |
} |
|
| 381 |
if( mNumOccurences ==null ) |
|
| 382 |
{
|
|
| 383 |
int max=0; |
|
| 384 |
|
|
| 385 |
for (ScrambleState mState : mStates) |
|
| 386 |
{
|
|
| 387 |
int tmp = mState.getTotal(-1); |
|
| 388 |
if (max < tmp) max = tmp; |
|
| 389 |
} |
|
| 390 |
|
|
| 391 |
mNumOccurences = new int[max]; |
|
| 392 |
} |
|
| 393 |
|
|
| 394 |
for(int i=0; i<NUM_AXIS; i++) |
|
| 395 |
for(int j=0; j<numLayers; j++) mScrambleTable[i][j] = 0; |
|
| 396 |
} |
|
| 397 |
|
|
| 398 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 399 |
|
|
| 400 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 401 |
{
|
|
| 402 |
if( curr==0 ) |
|
| 403 |
{
|
|
| 404 |
mCurrState = 0; |
|
| 405 |
mIndexExcluded =-1; |
|
| 406 |
initializeScrambling(); |
|
| 407 |
} |
|
| 408 |
|
|
| 409 |
int[] info= mStates[mCurrState].getRandom(rnd, mIndexExcluded, mScrambleTable, mNumOccurences); |
|
| 410 |
|
|
| 411 |
scramble[curr][0] = info[0]; |
|
| 412 |
scramble[curr][1] = info[1]; |
|
| 413 |
scramble[curr][2] = info[2]; |
|
| 414 |
|
|
| 415 |
mCurrState = info[3]; |
|
| 416 |
mIndexExcluded = info[0]; |
|
| 417 |
} |
|
| 418 |
|
|
| 419 | 376 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 420 | 377 |
|
| 421 | 378 |
public int getObjectName(int numLayers) |
| src/main/java/org/distorted/objects/TwistyDiamond.java | ||
|---|---|---|
| 31 | 31 |
import org.distorted.library.type.Static4D; |
| 32 | 32 |
import org.distorted.main.R; |
| 33 | 33 |
|
| 34 |
import java.util.Random; |
|
| 35 |
|
|
| 36 | 34 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 37 | 35 |
|
| 38 | 36 |
public class TwistyDiamond extends TwistyObject |
| ... | ... | |
| 57 | 55 |
private static final float DIST = 0.50f; |
| 58 | 56 |
private static final int FACES_PER_CUBIT =8; |
| 59 | 57 |
|
| 60 |
private int mCurrState; |
|
| 61 |
private int mIndexExcluded; |
|
| 62 |
private final ScrambleState[] mStates; |
|
| 63 |
private int[][] mScrambleTable; |
|
| 64 |
private int[] mNumOccurences; |
|
| 58 |
private ScrambleState[] mStates; |
|
| 65 | 59 |
private int[] mBasicAngle; |
| 66 | 60 |
private int[] mFaceMap; |
| 67 | 61 |
private Static4D[] mQuats; |
| ... | ... | |
| 74 | 68 |
MeshSquare mesh, DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 75 | 69 |
{
|
| 76 | 70 |
super(size, size, quat, texture, mesh, effects, moves, ObjectList.DIAM, res, scrWidth); |
| 71 |
} |
|
| 77 | 72 |
|
| 78 |
int[] tmp = new int[3*2*size];
|
|
| 73 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
| 79 | 74 |
|
| 80 |
for(int i=0; i<2*size; i++) |
|
| 75 |
ScrambleState[] getScrambleStates() |
|
| 76 |
{
|
|
| 77 |
if( mStates==null ) |
|
| 81 | 78 |
{
|
| 82 |
tmp[3*i ] = (i<size) ? i:i-size; |
|
| 83 |
tmp[3*i+1] = (i%2==0) ? -1:1; |
|
| 84 |
tmp[3*i+2] = 0; |
|
| 79 |
int size = getNumLayers(); |
|
| 80 |
int[] tmp = new int[3*2*size]; |
|
| 81 |
|
|
| 82 |
for(int i=0; i<2*size; i++) |
|
| 83 |
{
|
|
| 84 |
tmp[3*i ] = (i<size) ? i:i-size; |
|
| 85 |
tmp[3*i+1] = (i%2==0) ? -1:1; |
|
| 86 |
tmp[3*i+2] = 0; |
|
| 87 |
} |
|
| 88 |
|
|
| 89 |
mStates = new ScrambleState[] |
|
| 90 |
{
|
|
| 91 |
new ScrambleState( new int[][] {tmp,tmp,tmp,tmp} )
|
|
| 92 |
}; |
|
| 85 | 93 |
} |
| 86 | 94 |
|
| 87 |
mStates = new ScrambleState[] |
|
| 88 |
{
|
|
| 89 |
new ScrambleState( new int[][] {tmp,tmp,tmp,tmp} )
|
|
| 90 |
}; |
|
| 95 |
return mStates; |
|
| 91 | 96 |
} |
| 92 | 97 |
|
| 93 | 98 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 507 | 512 |
return 1.5f; |
| 508 | 513 |
} |
| 509 | 514 |
|
| 510 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 511 |
|
|
| 512 |
private void initializeScrambling() |
|
| 513 |
{
|
|
| 514 |
int numLayers = getNumLayers(); |
|
| 515 |
|
|
| 516 |
if( mScrambleTable ==null ) |
|
| 517 |
{
|
|
| 518 |
mScrambleTable = new int[NUM_AXIS][numLayers]; |
|
| 519 |
} |
|
| 520 |
if( mNumOccurences ==null ) |
|
| 521 |
{
|
|
| 522 |
int max=0; |
|
| 523 |
|
|
| 524 |
for (ScrambleState mState : mStates) |
|
| 525 |
{
|
|
| 526 |
int tmp = mState.getTotal(-1); |
|
| 527 |
if (max < tmp) max = tmp; |
|
| 528 |
} |
|
| 529 |
|
|
| 530 |
mNumOccurences = new int[max]; |
|
| 531 |
} |
|
| 532 |
|
|
| 533 |
for(int i=0; i<NUM_AXIS; i++) |
|
| 534 |
for(int j=0; j<numLayers; j++) mScrambleTable[i][j] = 0; |
|
| 535 |
} |
|
| 536 |
|
|
| 537 | 515 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 538 | 516 |
// PUBLIC API |
| 539 | 517 |
|
| 540 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 541 |
{
|
|
| 542 |
if( curr==0 ) |
|
| 543 |
{
|
|
| 544 |
mCurrState = 0; |
|
| 545 |
mIndexExcluded =-1; |
|
| 546 |
initializeScrambling(); |
|
| 547 |
} |
|
| 548 |
|
|
| 549 |
int[] info= mStates[mCurrState].getRandom(rnd, mIndexExcluded, mScrambleTable, mNumOccurences); |
|
| 550 |
|
|
| 551 |
scramble[curr][0] = info[0]; |
|
| 552 |
scramble[curr][1] = info[1]; |
|
| 553 |
scramble[curr][2] = info[2]; |
|
| 554 |
|
|
| 555 |
mCurrState = info[3]; |
|
| 556 |
mIndexExcluded = info[0]; |
|
| 557 |
} |
|
| 558 |
|
|
| 559 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 560 |
|
|
| 561 | 518 |
public Static3D[] getRotationAxis() |
| 562 | 519 |
{
|
| 563 | 520 |
return ROT_AXIS; |
| src/main/java/org/distorted/objects/TwistyDino.java | ||
|---|---|---|
| 30 | 30 |
import org.distorted.library.type.Static3D; |
| 31 | 31 |
import org.distorted.library.type.Static4D; |
| 32 | 32 |
|
| 33 |
import java.util.Random; |
|
| 34 |
|
|
| 35 | 33 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 36 | 34 |
|
| 37 | 35 |
public abstract class TwistyDino extends TwistyObject |
| ... | ... | |
| 52 | 50 |
COLOR_RED , COLOR_ORANGE |
| 53 | 51 |
}; |
| 54 | 52 |
|
| 55 |
private int mCurrState; |
|
| 56 |
private int mIndexExcluded; |
|
| 57 |
private int[][] mScrambleTable; |
|
| 58 |
private int[] mNumOccurences; |
|
| 59 | 53 |
private int[] mBasicAngle; |
| 60 | 54 |
private Static4D[] mQuats; |
| 61 | 55 |
private ObjectSticker[] mStickers; |
| ... | ... | |
| 229 | 223 |
return 2.0f; |
| 230 | 224 |
} |
| 231 | 225 |
|
| 232 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 233 |
|
|
| 234 |
private void initializeScrambling() |
|
| 235 |
{
|
|
| 236 |
int numLayers = getNumLayers(); |
|
| 237 |
|
|
| 238 |
if( mScrambleTable ==null ) |
|
| 239 |
{
|
|
| 240 |
mScrambleTable = new int[NUM_AXIS][numLayers]; |
|
| 241 |
} |
|
| 242 |
if( mNumOccurences ==null ) |
|
| 243 |
{
|
|
| 244 |
int max=0; |
|
| 245 |
|
|
| 246 |
for (ScrambleState mState : mStates) |
|
| 247 |
{
|
|
| 248 |
int tmp = mState.getTotal(-1); |
|
| 249 |
if (max < tmp) max = tmp; |
|
| 250 |
} |
|
| 251 |
|
|
| 252 |
mNumOccurences = new int[max]; |
|
| 253 |
} |
|
| 254 |
|
|
| 255 |
for(int i=0; i<NUM_AXIS; i++) |
|
| 256 |
for(int j=0; j<numLayers; j++) mScrambleTable[i][j] = 0; |
|
| 257 |
} |
|
| 258 |
|
|
| 259 | 226 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 260 | 227 |
// PUBLIC API |
| 261 | 228 |
|
| 262 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 263 |
{
|
|
| 264 |
if( curr==0 ) |
|
| 265 |
{
|
|
| 266 |
mCurrState = 0; |
|
| 267 |
mIndexExcluded =-1; |
|
| 268 |
initializeScrambling(); |
|
| 269 |
} |
|
| 270 |
|
|
| 271 |
int[] info= mStates[mCurrState].getRandom(rnd, mIndexExcluded, mScrambleTable, mNumOccurences); |
|
| 272 |
|
|
| 273 |
scramble[curr][0] = info[0]; |
|
| 274 |
scramble[curr][1] = info[1]; |
|
| 275 |
scramble[curr][2] = info[2]; |
|
| 276 |
|
|
| 277 |
mCurrState = info[3]; |
|
| 278 |
mIndexExcluded = info[0]; |
|
| 279 |
} |
|
| 280 |
|
|
| 281 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 282 |
|
|
| 283 | 229 |
public Static3D[] getRotationAxis() |
| 284 | 230 |
{
|
| 285 | 231 |
return ROT_AXIS; |
| src/main/java/org/distorted/objects/TwistyDino4.java | ||
|---|---|---|
| 40 | 40 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 41 | 41 |
{
|
| 42 | 42 |
super(size, quat, texture, mesh, effects, moves, ObjectList.DIN4, res, scrWidth); |
| 43 |
} |
|
| 44 |
|
|
| 45 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 43 | 46 |
|
| 44 |
mStates = new ScrambleState[] |
|
| 47 |
ScrambleState[] getScrambleStates() |
|
| 48 |
{
|
|
| 49 |
if( mStates==null ) |
|
| 45 | 50 |
{
|
| 46 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{0,1,5,0,-1,5 },{ 2,1,8,2,-1,8} } ),
|
|
| 47 |
new ScrambleState( new int[][] { { },{0,1,3,0,-1,3 },{0,1,5,0,-1,5, },{ 2,1,8,2,-1,8} } ),
|
|
| 48 |
new ScrambleState( new int[][] { { },{ 2,1,4,2,-1,4},{ 2,1,6,2,-1,6},{0,1,7,0,-1,7 } } ),
|
|
| 49 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ },{ 2,1,6,2,-1,6},{0,1,7,0,-1,7 } } ),
|
|
| 50 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{ },{0,1,5,0,-1,5, },{ 2,1,8,2,-1,8} } ),
|
|
| 51 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ 2,1,4,2,-1,4},{ },{0,1,7,0,-1,7 } } ),
|
|
| 52 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{ },{ 2,1,8,2,-1,8} } ),
|
|
| 53 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{0,1,5,0,-1,5, },{ } } ),
|
|
| 54 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ 2,1,4,2,-1,4},{ 2,1,6,2,-1,6},{ } } ),
|
|
| 55 |
}; |
|
| 51 |
mStates = new ScrambleState[] |
|
| 52 |
{
|
|
| 53 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{0,1,5,0,-1,5 },{ 2,1,8,2,-1,8} } ),
|
|
| 54 |
new ScrambleState( new int[][] { { },{0,1,3,0,-1,3 },{0,1,5,0,-1,5, },{ 2,1,8,2,-1,8} } ),
|
|
| 55 |
new ScrambleState( new int[][] { { },{ 2,1,4,2,-1,4},{ 2,1,6,2,-1,6},{0,1,7,0,-1,7 } } ),
|
|
| 56 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ },{ 2,1,6,2,-1,6},{0,1,7,0,-1,7 } } ),
|
|
| 57 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{ },{0,1,5,0,-1,5, },{ 2,1,8,2,-1,8} } ),
|
|
| 58 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ 2,1,4,2,-1,4},{ },{0,1,7,0,-1,7 } } ),
|
|
| 59 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{ },{ 2,1,8,2,-1,8} } ),
|
|
| 60 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{0,1,5,0,-1,5, },{ } } ),
|
|
| 61 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ 2,1,4,2,-1,4},{ 2,1,6,2,-1,6},{ } } ),
|
|
| 62 |
}; |
|
| 63 |
} |
|
| 64 |
|
|
| 65 |
return mStates; |
|
| 56 | 66 |
} |
| 57 | 67 |
|
| 58 | 68 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/objects/TwistyDino6.java | ||
|---|---|---|
| 40 | 40 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 41 | 41 |
{
|
| 42 | 42 |
super(size, quat, texture, mesh, effects, moves, ObjectList.DINO, res, scrWidth); |
| 43 |
} |
|
| 44 |
|
|
| 45 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 43 | 46 |
|
| 44 |
mStates = new ScrambleState[] |
|
| 47 |
ScrambleState[] getScrambleStates() |
|
| 48 |
{
|
|
| 49 |
if( mStates==null ) |
|
| 45 | 50 |
{
|
| 46 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1, 2,1,2,2,-1,2},{0,1,3,0,-1,3, 2,1,4,2,-1,4},{0,1,5,0,-1,5, 2,1,6,2,-1,6},{0,1,7,0,-1,7, 2,1,8,2,-1,8} } ),
|
|
| 47 |
new ScrambleState( new int[][] { { },{0,1,3,0,-1,3 },{0,1,5,0,-1,5, },{ 2,1,8,2,-1,8} } ),
|
|
| 48 |
new ScrambleState( new int[][] { { },{ 2,1,4,2,-1,4},{ 2,1,6,2,-1,6},{0,1,7,0,-1,7 } } ),
|
|
| 49 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ },{ 2,1,6,2,-1,6},{0,1,7,0,-1,7 } } ),
|
|
| 50 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{ },{0,1,5,0,-1,5, },{ 2,1,8,2,-1,8} } ),
|
|
| 51 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ 2,1,4,2,-1,4},{ },{0,1,7,0,-1,7 } } ),
|
|
| 52 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{ },{ 2,1,8,2,-1,8} } ),
|
|
| 53 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{0,1,5,0,-1,5, },{ } } ),
|
|
| 54 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ 2,1,4,2,-1,4},{ 2,1,6,2,-1,6},{ } } ),
|
|
| 55 |
}; |
|
| 51 |
mStates = new ScrambleState[] |
|
| 52 |
{
|
|
| 53 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1, 2,1,2,2,-1,2},{0,1,3,0,-1,3, 2,1,4,2,-1,4},{0,1,5,0,-1,5, 2,1,6,2,-1,6},{0,1,7,0,-1,7, 2,1,8,2,-1,8} } ),
|
|
| 54 |
new ScrambleState( new int[][] { { },{0,1,3,0,-1,3 },{0,1,5,0,-1,5, },{ 2,1,8,2,-1,8} } ),
|
|
| 55 |
new ScrambleState( new int[][] { { },{ 2,1,4,2,-1,4},{ 2,1,6,2,-1,6},{0,1,7,0,-1,7 } } ),
|
|
| 56 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ },{ 2,1,6,2,-1,6},{0,1,7,0,-1,7 } } ),
|
|
| 57 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{ },{0,1,5,0,-1,5, },{ 2,1,8,2,-1,8} } ),
|
|
| 58 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ 2,1,4,2,-1,4},{ },{0,1,7,0,-1,7 } } ),
|
|
| 59 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{ },{ 2,1,8,2,-1,8} } ),
|
|
| 60 |
new ScrambleState( new int[][] { { 2,1,2,2,-1,2},{0,1,3,0,-1,3 },{0,1,5,0,-1,5, },{ } } ),
|
|
| 61 |
new ScrambleState( new int[][] { {0,1,1,0,-1,1 },{ 2,1,4,2,-1,4},{ 2,1,6,2,-1,6},{ } } ),
|
|
| 62 |
}; |
|
| 63 |
} |
|
| 64 |
|
|
| 65 |
return mStates; |
|
| 56 | 66 |
} |
| 57 | 67 |
|
| 58 | 68 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/objects/TwistyHelicopter.java | ||
|---|---|---|
| 31 | 31 |
import org.distorted.library.type.Static4D; |
| 32 | 32 |
import org.distorted.main.R; |
| 33 | 33 |
|
| 34 |
import java.util.Random; |
|
| 35 |
|
|
| 36 | 34 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 37 | 35 |
|
| 38 | 36 |
public class TwistyHelicopter extends TwistyObject |
| ... | ... | |
| 57 | 55 |
|
| 58 | 56 |
private static final int FACES_PER_CUBIT =6; |
| 59 | 57 |
|
| 60 |
private int mCurrState; |
|
| 61 |
private int mIndexExcluded; |
|
| 62 |
private final ScrambleState[] mStates; |
|
| 63 |
private int[][] mScrambleTable; |
|
| 64 |
private int[] mNumOccurences; |
|
| 58 |
private ScrambleState[] mStates; |
|
| 65 | 59 |
private int[] mBasicAngle; |
| 66 | 60 |
private Static4D[] mQuats; |
| 67 | 61 |
private float[][] mCenters; |
| ... | ... | |
| 75 | 69 |
MeshSquare mesh, DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 76 | 70 |
{
|
| 77 | 71 |
super(size, size, quat, texture, mesh, effects, moves, ObjectList.HELI, res, scrWidth); |
| 72 |
} |
|
| 73 |
|
|
| 74 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 78 | 75 |
|
| 79 |
mStates = new ScrambleState[] |
|
| 76 |
ScrambleState[] getScrambleStates() |
|
| 77 |
{
|
|
| 78 |
if( mStates==null ) |
|
| 80 | 79 |
{
|
| 81 |
new ScrambleState( new int[][] { {0,1,1,2,1,2},{0,1,3,2,1,4},{0,1,5,2,1,6},{0,1,7,2,1,8},{0,1,9,2,1,10},{0,1,11,2,1,12} } ),
|
|
| 82 |
new ScrambleState( new int[][] { { },{ },{0,1,5 },{0,1,7 },{ 2,1,10},{ 2,1,12} } ),
|
|
| 83 |
new ScrambleState( new int[][] { { },{ },{ 2,1,6},{ 2,1,8},{0,1,9 },{0,1,11 } } ),
|
|
| 84 |
new ScrambleState( new int[][] { { },{ },{0,1,5 },{0,1,7 },{0,1,9 },{0,1,11 } } ),
|
|
| 85 |
new ScrambleState( new int[][] { { },{ },{ 2,1,6},{ 2,1,8},{ 2,1,10},{ 2,1,12} } ),
|
|
| 86 |
new ScrambleState( new int[][] { {0,1,1 },{0,1,3 },{ },{ },{0,1,9 },{ 2,1,12} } ),
|
|
| 87 |
new ScrambleState( new int[][] { { 2,1,2},{ 2,1,4},{ },{ },{ 2,1,10},{0,1,11 } } ),
|
|
| 88 |
new ScrambleState( new int[][] { {0,1,1 },{0,1,3 },{ },{ },{ 2,1,10},{0,1,11 } } ),
|
|
| 89 |
new ScrambleState( new int[][] { { 2,1,2},{ 2,1,4},{ },{ },{0,1,9 },{ 2,1,12} } ),
|
|
| 90 |
new ScrambleState( new int[][] { { 2,1,2},{0,1,3 },{0,1,5 },{ 2,1,8},{ },{ } } ),
|
|
| 91 |
new ScrambleState( new int[][] { {0,1,1 },{ 2,1,4},{ 2,1,6},{0,1,7 },{ },{ } } ),
|
|
| 92 |
new ScrambleState( new int[][] { { 2,1,2},{0,1,3 },{ 2,1,6},{0,1,7 },{ },{ } } ),
|
|
| 93 |
new ScrambleState( new int[][] { {0,1,1 },{ 2,1,4},{0,1,5 },{ 2,1,8},{ },{ } } ),
|
|
| 94 |
}; |
|
| 80 |
mStates = new ScrambleState[] |
|
| 81 |
{
|
|
| 82 |
new ScrambleState( new int[][] { {0,1,1,2,1,2},{0,1,3,2,1,4},{0,1,5,2,1,6},{0,1,7,2,1,8},{0,1,9,2,1,10},{0,1,11,2,1,12} } ),
|
|
| 83 |
new ScrambleState( new int[][] { { },{ },{0,1,5 },{0,1,7 },{ 2,1,10},{ 2,1,12} } ),
|
|
| 84 |
new ScrambleState( new int[][] { { },{ },{ 2,1,6},{ 2,1,8},{0,1,9 },{0,1,11 } } ),
|
|
| 85 |
new ScrambleState( new int[][] { { },{ },{0,1,5 },{0,1,7 },{0,1,9 },{0,1,11 } } ),
|
|
| 86 |
new ScrambleState( new int[][] { { },{ },{ 2,1,6},{ 2,1,8},{ 2,1,10},{ 2,1,12} } ),
|
|
| 87 |
new ScrambleState( new int[][] { {0,1,1 },{0,1,3 },{ },{ },{0,1,9 },{ 2,1,12} } ),
|
|
| 88 |
new ScrambleState( new int[][] { { 2,1,2},{ 2,1,4},{ },{ },{ 2,1,10},{0,1,11 } } ),
|
|
| 89 |
new ScrambleState( new int[][] { {0,1,1 },{0,1,3 },{ },{ },{ 2,1,10},{0,1,11 } } ),
|
|
| 90 |
new ScrambleState( new int[][] { { 2,1,2},{ 2,1,4},{ },{ },{0,1,9 },{ 2,1,12} } ),
|
|
| 91 |
new ScrambleState( new int[][] { { 2,1,2},{0,1,3 },{0,1,5 },{ 2,1,8},{ },{ } } ),
|
|
| 92 |
new ScrambleState( new int[][] { {0,1,1 },{ 2,1,4},{ 2,1,6},{0,1,7 },{ },{ } } ),
|
|
| 93 |
new ScrambleState( new int[][] { { 2,1,2},{0,1,3 },{ 2,1,6},{0,1,7 },{ },{ } } ),
|
|
| 94 |
new ScrambleState( new int[][] { {0,1,1 },{ 2,1,4},{0,1,5 },{ 2,1,8},{ },{ } } ),
|
|
| 95 |
}; |
|
| 96 |
} |
|
| 97 |
|
|
| 98 |
return mStates; |
|
| 95 | 99 |
} |
| 96 | 100 |
|
| 97 | 101 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 423 | 427 |
return 2.0f; |
| 424 | 428 |
} |
| 425 | 429 |
|
| 426 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 427 |
|
|
| 428 |
private void initializeScrambling() |
|
| 429 |
{
|
|
| 430 |
int numLayers = getNumLayers(); |
|
| 431 |
|
|
| 432 |
if( mScrambleTable ==null ) |
|
| 433 |
{
|
|
| 434 |
mScrambleTable = new int[NUM_AXIS][numLayers]; |
|
| 435 |
} |
|
| 436 |
if( mNumOccurences ==null ) |
|
| 437 |
{
|
|
| 438 |
int max=0; |
|
| 439 |
|
|
| 440 |
for (ScrambleState mState : mStates) |
|
| 441 |
{
|
|
| 442 |
int tmp = mState.getTotal(-1); |
|
| 443 |
if (max < tmp) max = tmp; |
|
| 444 |
} |
|
| 445 |
|
|
| 446 |
mNumOccurences = new int[max]; |
|
| 447 |
} |
|
| 448 |
|
|
| 449 |
for(int i=0; i<NUM_AXIS; i++) |
|
| 450 |
for(int j=0; j<numLayers; j++) mScrambleTable[i][j] = 0; |
|
| 451 |
} |
|
| 452 |
|
|
| 453 | 430 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 454 | 431 |
// PUBLIC API |
| 455 | 432 |
|
| 456 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 457 |
{
|
|
| 458 |
if( curr==0 ) |
|
| 459 |
{
|
|
| 460 |
mCurrState = 0; |
|
| 461 |
mIndexExcluded =-1; |
|
| 462 |
initializeScrambling(); |
|
| 463 |
} |
|
| 464 |
|
|
| 465 |
int[] info= mStates[mCurrState].getRandom(rnd, mIndexExcluded, mScrambleTable, mNumOccurences); |
|
| 466 |
|
|
| 467 |
scramble[curr][0] = info[0]; |
|
| 468 |
scramble[curr][1] = info[1]; |
|
| 469 |
scramble[curr][2] = info[2]; |
|
| 470 |
|
|
| 471 |
mCurrState = info[3]; |
|
| 472 |
mIndexExcluded = info[0]; |
|
| 473 |
} |
|
| 474 |
|
|
| 475 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 476 |
|
|
| 477 | 433 |
public Static3D[] getRotationAxis() |
| 478 | 434 |
{
|
| 479 | 435 |
return ROT_AXIS; |
| src/main/java/org/distorted/objects/TwistyIvy.java | ||
|---|---|---|
| 31 | 31 |
import org.distorted.library.type.Static4D; |
| 32 | 32 |
import org.distorted.main.R; |
| 33 | 33 |
|
| 34 |
import java.util.Random; |
|
| 35 |
|
|
| 36 | 34 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 37 | 35 |
|
| 38 | 36 |
public class TwistyIvy extends TwistyObject |
| ... | ... | |
| 58 | 56 |
private static final int IVY_N = 8; |
| 59 | 57 |
private static final int FACES_PER_CUBIT =6; |
| 60 | 58 |
|
| 61 |
private int mCurrState; |
|
| 62 |
private int mIndexExcluded; |
|
| 63 |
private final ScrambleState[] mStates; |
|
| 64 |
private int[][] mScrambleTable; |
|
| 65 |
private int[] mNumOccurences; |
|
| 59 |
private ScrambleState[] mStates; |
|
| 66 | 60 |
private int[] mBasicAngle; |
| 67 | 61 |
private Static4D[] mQuats; |
| 68 | 62 |
private int[][] mFaceMap; |
| ... | ... | |
| 83 | 77 |
}; |
| 84 | 78 |
} |
| 85 | 79 |
|
| 80 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 81 |
|
|
| 82 |
ScrambleState[] getScrambleStates() |
|
| 83 |
{
|
|
| 84 |
if( mStates==null ) |
|
| 85 |
{
|
|
| 86 |
int[] tmp = {0,-1,0, 0,1,0, 1,-1,0, 1,1,0 };
|
|
| 87 |
|
|
| 88 |
mStates = new ScrambleState[] |
|
| 89 |
{
|
|
| 90 |
new ScrambleState( new int[][] {tmp,tmp,tmp,tmp} )
|
|
| 91 |
}; |
|
| 92 |
} |
|
| 93 |
|
|
| 94 |
return mStates; |
|
| 95 |
} |
|
| 96 |
|
|
| 86 | 97 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 87 | 98 |
|
| 88 | 99 |
private void initializeQuats() |
| ... | ... | |
| 447 | 458 |
return 2.0f; |
| 448 | 459 |
} |
| 449 | 460 |
|
| 450 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 451 |
|
|
| 452 |
private void initializeScrambling() |
|
| 453 |
{
|
|
| 454 |
int numLayers = getNumLayers(); |
|
| 455 |
|
|
| 456 |
if( mScrambleTable ==null ) |
|
| 457 |
{
|
|
| 458 |
mScrambleTable = new int[NUM_AXIS][numLayers]; |
|
| 459 |
} |
|
| 460 |
if( mNumOccurences ==null ) |
|
| 461 |
{
|
|
| 462 |
int max=0; |
|
| 463 |
|
|
| 464 |
for (ScrambleState mState : mStates) |
|
| 465 |
{
|
|
| 466 |
int tmp = mState.getTotal(-1); |
|
| 467 |
if (max < tmp) max = tmp; |
|
| 468 |
} |
|
| 469 |
|
|
| 470 |
mNumOccurences = new int[max]; |
|
| 471 |
} |
|
| 472 |
|
|
| 473 |
for(int i=0; i<NUM_AXIS; i++) |
|
| 474 |
for(int j=0; j<numLayers; j++) mScrambleTable[i][j] = 0; |
|
| 475 |
} |
|
| 476 |
|
|
| 477 | 461 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 478 | 462 |
// PUBLIC API |
| 479 | 463 |
|
| 480 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 481 |
{
|
|
| 482 |
if( curr==0 ) |
|
| 483 |
{
|
|
| 484 |
mCurrState = 0; |
|
| 485 |
mIndexExcluded =-1; |
|
| 486 |
initializeScrambling(); |
|
| 487 |
} |
|
| 488 |
|
|
| 489 |
int[] info= mStates[mCurrState].getRandom(rnd, mIndexExcluded, mScrambleTable, mNumOccurences); |
|
| 490 |
|
|
| 491 |
scramble[curr][0] = info[0]; |
|
| 492 |
scramble[curr][1] = info[1]; |
|
| 493 |
scramble[curr][2] = info[2]; |
|
| 494 |
|
|
| 495 |
mCurrState = info[3]; |
|
| 496 |
mIndexExcluded = info[0]; |
|
| 497 |
} |
|
| 498 |
|
|
| 499 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 500 |
|
|
| 501 | 464 |
public Static3D[] getRotationAxis() |
| 502 | 465 |
{
|
| 503 | 466 |
return ROT_AXIS; |
| src/main/java/org/distorted/objects/TwistyJing.java | ||
|---|---|---|
| 31 | 31 |
import org.distorted.library.type.Static4D; |
| 32 | 32 |
import org.distorted.main.R; |
| 33 | 33 |
|
| 34 |
import java.util.Random; |
|
| 35 |
|
|
| 36 | 34 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 37 | 35 |
|
| 38 | 36 |
public class TwistyJing extends TwistyObject |
| ... | ... | |
| 55 | 53 |
// the length of the edge of the whole tetrahedron. |
| 56 | 54 |
// keep < 0.25. |
| 57 | 55 |
|
| 58 |
private int mCurrState; |
|
| 59 |
private int mIndexExcluded; |
|
| 60 |
private final ScrambleState[] mStates; |
|
| 61 |
private int[][] mScrambleTable; |
|
| 62 |
private int[] mNumOccurences; |
|
| 56 |
private ScrambleState[] mStates; |
|
| 63 | 57 |
private int[] mBasicAngle; |
| 64 | 58 |
private int[] mRotQuat; |
| 65 | 59 |
private Static4D[] mQuats; |
| ... | ... | |
| 73 | 67 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 74 | 68 |
{
|
| 75 | 69 |
super(size, size, quat, texture, mesh, effects, moves, ObjectList.JING, res, scrWidth); |
| 70 |
} |
|
| 76 | 71 |
|
| 77 |
int[] tmp = {0,-1,0, 0,1,0, 1,-1,0, 1,1,0 };
|
|
| 72 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
| 78 | 73 |
|
| 79 |
mStates = new ScrambleState[] |
|
| 74 |
ScrambleState[] getScrambleStates() |
|
| 75 |
{
|
|
| 76 |
if( mStates==null ) |
|
| 80 | 77 |
{
|
| 81 |
new ScrambleState( new int[][] {tmp,tmp,tmp,tmp} )
|
|
| 82 |
}; |
|
| 78 |
int[] tmp = {0,-1,0, 0,1,0, 1,-1,0, 1,1,0 };
|
|
| 79 |
|
|
| 80 |
mStates = new ScrambleState[] |
|
| 81 |
{
|
|
| 82 |
new ScrambleState( new int[][] {tmp,tmp,tmp,tmp} )
|
|
| 83 |
}; |
|
| 84 |
} |
|
| 85 |
|
|
| 86 |
return mStates; |
|
| 83 | 87 |
} |
| 84 | 88 |
|
| 85 | 89 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 408 | 412 |
return getNumLayers()/(SQ6/3); |
| 409 | 413 |
} |
| 410 | 414 |
|
| 411 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 412 |
|
|
| 413 |
private void initializeScrambling() |
|
| 414 |
{
|
|
| 415 |
int numLayers = getNumLayers(); |
|
| 416 |
|
|
| 417 |
if( mScrambleTable ==null ) |
|
| 418 |
{
|
|
| 419 |
mScrambleTable = new int[NUM_AXIS][numLayers]; |
|
| 420 |
} |
|
| 421 |
if( mNumOccurences ==null ) |
|
| 422 |
{
|
|
| 423 |
int max=0; |
|
| 424 |
|
|
| 425 |
for (ScrambleState mState : mStates) |
|
| 426 |
{
|
|
| 427 |
int tmp = mState.getTotal(-1); |
|
| 428 |
if (max < tmp) max = tmp; |
|
| 429 |
} |
|
| 430 |
|
|
| 431 |
mNumOccurences = new int[max]; |
|
| 432 |
} |
|
| 433 |
|
|
| 434 |
for(int i=0; i<NUM_AXIS; i++) |
|
| 435 |
for(int j=0; j<numLayers; j++) mScrambleTable[i][j] = 0; |
|
| 436 |
} |
|
| 437 |
|
|
| 438 | 415 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 439 | 416 |
// PUBLIC API |
| 440 | 417 |
|
| 441 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 442 |
{
|
|
| 443 |
if( curr==0 ) |
|
| 444 |
{
|
|
| 445 |
mCurrState = 0; |
|
| 446 |
mIndexExcluded =-1; |
|
| 447 |
initializeScrambling(); |
|
| 448 |
} |
|
| 449 |
|
|
| 450 |
int[] info= mStates[mCurrState].getRandom(rnd, mIndexExcluded, mScrambleTable, mNumOccurences); |
|
| 451 |
|
|
| 452 |
scramble[curr][0] = info[0]; |
|
| 453 |
scramble[curr][1] = info[1]; |
|
| 454 |
scramble[curr][2] = info[2]; |
|
| 455 |
|
|
| 456 |
mCurrState = info[3]; |
|
| 457 |
mIndexExcluded = info[0]; |
|
| 458 |
} |
|
| 459 |
|
|
| 460 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 461 |
|
|
| 462 | 418 |
public Static3D[] getRotationAxis() |
| 463 | 419 |
{
|
| 464 | 420 |
return ROT_AXIS; |
| src/main/java/org/distorted/objects/TwistyMinx.java | ||
|---|---|---|
| 29 | 29 |
import org.distorted.library.type.Static3D; |
| 30 | 30 |
import org.distorted.library.type.Static4D; |
| 31 | 31 |
|
| 32 |
import java.util.Random; |
|
| 33 |
|
|
| 34 | 32 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 35 | 33 |
|
| 36 | 34 |
abstract class TwistyMinx extends TwistyObject |
| ... | ... | |
| 81 | 79 |
MINX_DBLUE , MINX_DYELLOW, MINX_WHITE , MINX_GREY |
| 82 | 80 |
}; |
| 83 | 81 |
|
| 84 |
private int mCurrState; |
|
| 85 |
private int mIndexExcluded; |
|
| 86 | 82 |
private ScrambleState[] mStates; |
| 87 |
private int[][] mScrambleTable; |
|
| 88 |
private int[] mNumOccurences; |
|
| 89 | 83 |
private int[] mBasicAngle; |
| 90 | 84 |
private int[] mFaceMap; |
| 91 | 85 |
Static4D[] mQuats; |
| ... | ... | |
| 105 | 99 |
DistortedEffects effects, int[][] moves, ObjectList obj, Resources res, int scrWidth) |
| 106 | 100 |
{
|
| 107 | 101 |
super(numLayers, realSize, quat, texture, mesh, effects, moves, obj, res, scrWidth); |
| 108 |
|
|
| 109 |
initializeScrambleStates(numLayers); |
|
| 110 | 102 |
} |
| 111 | 103 |
|
| 104 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 105 |
|
|
| 106 |
ScrambleState[] getScrambleStates() |
|
| 107 |
{
|
|
| 108 |
if( mStates==null ) |
|
| 109 |
{
|
|
| 110 |
int numLayers = getNumLayers(); |
|
| 111 |
initializeScrambleStates(numLayers); |
|
| 112 |
} |
|
| 113 |
|
|
| 114 |
return mStates; |
|
| 115 |
} |
|
| 112 | 116 |
|
| 113 | 117 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 114 | 118 |
|
| ... | ... | |
| 553 | 557 |
return 2.0f; |
| 554 | 558 |
} |
| 555 | 559 |
|
| 556 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 557 |
|
|
| 558 |
private void initializeScrambling() |
|
| 559 |
{
|
|
| 560 |
int numLayers = getNumLayers(); |
|
| 561 |
|
|
| 562 |
if( mScrambleTable ==null ) |
|
| 563 |
{
|
|
| 564 |
mScrambleTable = new int[NUM_AXIS][numLayers]; |
|
| 565 |
} |
|
| 566 |
if( mNumOccurences ==null ) |
|
| 567 |
{
|
|
| 568 |
int max=0; |
|
| 569 |
|
|
| 570 |
for (ScrambleState mState : mStates) |
|
| 571 |
{
|
|
| 572 |
int tmp = mState.getTotal(-1); |
|
| 573 |
if (max < tmp) max = tmp; |
|
| 574 |
} |
|
| 575 |
|
|
| 576 |
mNumOccurences = new int[max]; |
|
| 577 |
} |
|
| 578 |
|
|
| 579 |
for(int i=0; i<NUM_AXIS; i++) |
|
| 580 |
for(int j=0; j<numLayers; j++) mScrambleTable[i][j] = 0; |
|
| 581 |
} |
|
| 582 |
|
|
| 583 | 560 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 584 | 561 |
// PUBLIC API |
| 585 | 562 |
|
| 586 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 587 |
{
|
|
| 588 |
if( curr==0 ) |
|
| 589 |
{
|
|
| 590 |
mCurrState = 0; |
|
| 591 |
mIndexExcluded =-1; |
|
| 592 |
initializeScrambling(); |
|
| 593 |
} |
|
| 594 |
|
|
| 595 |
int[] info= mStates[mCurrState].getRandom(rnd, mIndexExcluded, mScrambleTable, mNumOccurences); |
|
| 596 |
|
|
| 597 |
scramble[curr][0] = info[0]; |
|
| 598 |
scramble[curr][1] = info[1]; |
|
| 599 |
scramble[curr][2] = info[2]; |
|
| 600 |
|
|
| 601 |
mCurrState = info[3]; |
|
| 602 |
mIndexExcluded = info[0]; |
|
| 603 |
} |
|
| 604 |
|
|
| 605 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 606 |
|
|
| 607 | 563 |
public Static3D[] getRotationAxis() |
| 608 | 564 |
{
|
| 609 | 565 |
return ROT_AXIS; |
| src/main/java/org/distorted/objects/TwistyObject.java | ||
|---|---|---|
| 32 | 32 |
import org.distorted.helpers.ObjectShape; |
| 33 | 33 |
import org.distorted.helpers.ObjectSticker; |
| 34 | 34 |
import org.distorted.helpers.QuatHelper; |
| 35 |
import org.distorted.helpers.ScrambleState; |
|
| 35 | 36 |
import org.distorted.library.effect.Effect; |
| 36 | 37 |
import org.distorted.library.effect.MatrixEffectMove; |
| 37 | 38 |
import org.distorted.library.effect.MatrixEffectQuaternion; |
| ... | ... | |
| 126 | 127 |
private int mRotRowBitmap; |
| 127 | 128 |
private int mRotAxis; |
| 128 | 129 |
private MeshBase mMesh; |
| 130 |
private final TwistyObjectScrambler mScrambler; |
|
| 129 | 131 |
|
| 130 | 132 |
//////////////////// SOLVED1 //////////////////////// |
| 131 | 133 |
|
| ... | ... | |
| 166 | 168 |
NUM_AXIS = mAxis.length; |
| 167 | 169 |
NUM_QUATS = OBJECT_QUATS.length; |
| 168 | 170 |
|
| 171 |
int scramblingType = getScrambleType(); |
|
| 172 |
ScrambleState[] states = getScrambleStates(); |
|
| 173 |
mScrambler = new TwistyObjectScrambler(scramblingType,NUM_AXIS,numLayers,states); |
|
| 174 |
|
|
| 169 | 175 |
boolean bandaged=false; |
| 170 | 176 |
|
| 171 | 177 |
for(int c=0; c<NUM_CUBITS; c++) |
| ... | ... | |
| 746 | 752 |
} |
| 747 | 753 |
} |
| 748 | 754 |
|
| 755 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 756 |
|
|
| 757 |
int getScrambleType() |
|
| 758 |
{
|
|
| 759 |
return 0; |
|
| 760 |
} |
|
| 761 |
|
|
| 749 | 762 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 750 | 763 |
|
| 751 | 764 |
int computeBitmapFromRow(int rowBitmap, int axis) |
| ... | ... | |
| 1260 | 1273 |
return mList; |
| 1261 | 1274 |
} |
| 1262 | 1275 |
|
| 1276 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 1277 |
|
|
| 1278 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int total) |
|
| 1279 |
{
|
|
| 1280 |
mScrambler.randomizeNewScramble(scramble,rnd,curr,total); |
|
| 1281 |
} |
|
| 1282 |
|
|
| 1263 | 1283 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 1264 | 1284 |
|
| 1265 | 1285 |
abstract float getScreenRatio(); |
| ... | ... | |
| 1280 | 1300 |
abstract ObjectShape getObjectShape(int cubit, int numLayers); |
| 1281 | 1301 |
abstract int[] getSolvedQuats(int cubit, int numLayers); |
| 1282 | 1302 |
abstract int getSolvedFunctionIndex(); |
| 1303 |
abstract ScrambleState[] getScrambleStates(); |
|
| 1283 | 1304 |
|
| 1284 | 1305 |
public abstract Static3D[] getRotationAxis(); |
| 1285 | 1306 |
public abstract int[] getBasicAngle(); |
| 1286 |
public abstract void randomizeNewScramble(int[][] scramble, Random rnd, int curScramble, int totScrambles); |
|
| 1287 | 1307 |
public abstract int getObjectName(int numLayers); |
| 1288 | 1308 |
public abstract int getInventor(int numLayers); |
| 1289 | 1309 |
public abstract int getComplexity(int numLayers); |
Also available in: Unified diff
Make object scrambling abstract (well, almost - with exception of Square-1 - this theoretically could also be done the generic way, but this would require almost 20000 'ScrambleStates')