Revision 01b2ef5a
Added by Leszek Koltunski about 4 years ago
| src/main/java/org/distorted/objects/TwistyRex.java | ||
|---|---|---|
| 23 | 23 |
|
| 24 | 24 |
import org.distorted.helpers.ObjectShape; |
| 25 | 25 |
import org.distorted.helpers.ObjectSticker; |
| 26 |
import org.distorted.helpers.ScrambleStateGraph; |
|
| 26 | 27 |
import org.distorted.library.main.DistortedEffects; |
| 27 | 28 |
import org.distorted.library.main.DistortedTexture; |
| 28 | 29 |
import org.distorted.library.mesh.MeshSquare; |
| ... | ... | |
| 152 | 153 |
} |
| 153 | 154 |
} |
| 154 | 155 |
|
| 156 |
private int mCurrState; |
|
| 157 |
private int mIndexExcluded; |
|
| 158 |
private final ScrambleStateGraph[] mStates; |
|
| 159 |
|
|
| 155 | 160 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 156 | 161 |
|
| 157 | 162 |
TwistyRex(int size, Static4D quat, DistortedTexture texture, MeshSquare mesh, |
| 158 | 163 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 159 | 164 |
{
|
| 160 | 165 |
super(size, size, quat, texture, mesh, effects, moves, ObjectList.REX, res, scrWidth); |
| 166 |
|
|
| 167 |
int[] tmp = {0,-1,0, 0,1,0, 2,-1,0, 2,1,0 };
|
|
| 168 |
|
|
| 169 |
mStates = new ScrambleStateGraph[] |
|
| 170 |
{
|
|
| 171 |
new ScrambleStateGraph( new int[][] {tmp,tmp,tmp,tmp} )
|
|
| 172 |
}; |
|
| 161 | 173 |
} |
| 162 | 174 |
|
| 163 | 175 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 481 | 493 |
|
| 482 | 494 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 483 | 495 |
|
| 484 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int total) |
|
| 496 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles)
|
|
| 485 | 497 |
{
|
| 486 | 498 |
if( curr==0 ) |
| 487 | 499 |
{
|
| 488 |
scramble[curr][0] = rnd.nextInt(NUM_AXIS); |
|
| 489 |
} |
|
| 490 |
else |
|
| 491 |
{
|
|
| 492 |
int newVector = rnd.nextInt(NUM_AXIS -1); |
|
| 493 |
scramble[curr][0] = (newVector>=scramble[curr-1][0] ? newVector+1 : newVector); |
|
| 500 |
mCurrState = 0; |
|
| 501 |
mIndexExcluded =-1; |
|
| 494 | 502 |
} |
| 495 | 503 |
|
| 496 |
scramble[curr][1] = rnd.nextFloat()<=0.5f ? 0 : 2; |
|
| 504 |
int total = mStates[mCurrState].getTotal(mIndexExcluded); |
|
| 505 |
int random= rnd.nextInt(total); |
|
| 506 |
int[] info= mStates[mCurrState].getInfo(random,mIndexExcluded); |
|
| 497 | 507 |
|
| 498 |
switch( rnd.nextInt(2) ) |
|
| 499 |
{
|
|
| 500 |
case 0: scramble[curr][2] = -1; break; |
|
| 501 |
case 1: scramble[curr][2] = 1; break; |
|
| 502 |
} |
|
| 508 |
scramble[curr][0] = info[0]; |
|
| 509 |
scramble[curr][1] = info[1]; |
|
| 510 |
scramble[curr][2] = info[2]; |
|
| 511 |
|
|
| 512 |
mCurrState = info[3]; |
|
| 513 |
mIndexExcluded = info[0]; |
|
| 503 | 514 |
} |
| 504 | 515 |
|
| 505 | 516 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/objects/TwistySkewb.java | ||
|---|---|---|
| 23 | 23 |
|
| 24 | 24 |
import org.distorted.helpers.ObjectShape; |
| 25 | 25 |
import org.distorted.helpers.ObjectSticker; |
| 26 |
import org.distorted.helpers.ScrambleStateGraph; |
|
| 26 | 27 |
import org.distorted.library.main.DistortedEffects; |
| 27 | 28 |
import org.distorted.library.main.DistortedTexture; |
| 28 | 29 |
import org.distorted.library.mesh.MeshSquare; |
| ... | ... | |
| 189 | 190 |
} |
| 190 | 191 |
} |
| 191 | 192 |
|
| 193 |
private int mCurrState; |
|
| 194 |
private int mIndexExcluded; |
|
| 195 |
private final ScrambleStateGraph[] mStates; |
|
| 196 |
|
|
| 192 | 197 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 193 | 198 |
|
| 194 | 199 |
TwistySkewb(int size, Static4D quat, DistortedTexture texture, |
| 195 | 200 |
MeshSquare mesh, DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
| 196 | 201 |
{
|
| 197 | 202 |
super(size, 2*size-2, quat, texture, mesh, effects, moves, ObjectList.SKEW, res, scrWidth); |
| 203 |
|
|
| 204 |
int[] tmp = {0,-1,0, 0,1,0, size-1,-1,0, size-1,1,0 };
|
|
| 205 |
|
|
| 206 |
mStates = new ScrambleStateGraph[] |
|
| 207 |
{
|
|
| 208 |
new ScrambleStateGraph( new int[][] {tmp,tmp,tmp,tmp} )
|
|
| 209 |
}; |
|
| 198 | 210 |
} |
| 199 | 211 |
|
| 200 | 212 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 599 | 611 |
|
| 600 | 612 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 601 | 613 |
|
| 602 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int total) |
|
| 614 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles)
|
|
| 603 | 615 |
{
|
| 604 | 616 |
if( curr==0 ) |
| 605 | 617 |
{
|
| 606 |
scramble[curr][0] = rnd.nextInt(NUM_AXIS); |
|
| 607 |
} |
|
| 608 |
else |
|
| 609 |
{
|
|
| 610 |
int newVector = rnd.nextInt(NUM_AXIS-1); |
|
| 611 |
scramble[curr][0] = (newVector>=scramble[curr-1][0] ? newVector+1 : newVector); |
|
| 618 |
mCurrState = 0; |
|
| 619 |
mIndexExcluded =-1; |
|
| 612 | 620 |
} |
| 613 | 621 |
|
| 614 |
scramble[curr][1] = rnd.nextFloat()<=0.5f ? 0 : getNumLayers()-1; |
|
| 622 |
int total = mStates[mCurrState].getTotal(mIndexExcluded); |
|
| 623 |
int random= rnd.nextInt(total); |
|
| 624 |
int[] info= mStates[mCurrState].getInfo(random,mIndexExcluded); |
|
| 615 | 625 |
|
| 616 |
switch( rnd.nextInt(2) ) |
|
| 617 |
{
|
|
| 618 |
case 0: scramble[curr][2] = -1; break; |
|
| 619 |
case 1: scramble[curr][2] = 1; break; |
|
| 620 |
} |
|
| 626 |
scramble[curr][0] = info[0]; |
|
| 627 |
scramble[curr][1] = info[1]; |
|
| 628 |
scramble[curr][2] = info[2]; |
|
| 629 |
|
|
| 630 |
mCurrState = info[3]; |
|
| 631 |
mIndexExcluded = info[0]; |
|
| 621 | 632 |
} |
| 622 | 633 |
|
| 623 | 634 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Convert Skewbs & Rex Cube to the new, unified scrambling method.