Revision 0203be88
Added by Leszek Koltunski over 4 years ago
| src/main/java/org/distorted/objects/TwistyBandagedAbstract.java | ||
|---|---|---|
| 535 | 535 |
return getNumLayers(); |
| 536 | 536 |
} |
| 537 | 537 |
|
| 538 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 539 |
|
|
| 540 |
float[] getRowChances(int numLayers) |
|
| 541 |
{
|
|
| 542 |
float[] chances = new float[numLayers]; |
|
| 543 |
|
|
| 544 |
for(int i=0; i<numLayers; i++) |
|
| 545 |
{
|
|
| 546 |
chances[i] = (i+1.0f) / numLayers; |
|
| 547 |
} |
|
| 548 |
|
|
| 549 |
return chances; |
|
| 550 |
} |
|
| 551 |
|
|
| 552 | 538 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 553 | 539 |
// PUBLIC API |
| 554 | 540 |
|
| src/main/java/org/distorted/objects/TwistyBandagedEvil.java | ||
|---|---|---|
| 263 | 263 |
case 1: mUseX = true ; mUseY = false; mUseZ = true ; break; |
| 264 | 264 |
case 2: mUseX = true ; mUseY = true ; mUseZ = false; break; |
| 265 | 265 |
} |
| 266 |
|
|
| 267 |
//android.util.Log.e("D", (info[0]==0 ? "X" : (info[0]==1 ? "Y" : "Z")) + info[2] +" --> "+info[3]);
|
|
| 268 | 266 |
} |
| 269 | 267 |
|
| 270 | 268 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/objects/TwistyBandagedFused.java | ||
|---|---|---|
| 103 | 103 |
} |
| 104 | 104 |
|
| 105 | 105 |
float rowFloat = rnd.nextFloat(); |
| 106 |
int numLayers = getNumLayers(); |
|
| 106 | 107 |
|
| 107 |
for(int row=0; row<mRowChances.length; row++)
|
|
| 108 |
for(int row=0; row<numLayers; row++)
|
|
| 108 | 109 |
{
|
| 109 |
if( rowFloat<=mRowChances[row] )
|
|
| 110 |
if( rowFloat*numLayers <= row+1 )
|
|
| 110 | 111 |
{
|
| 111 | 112 |
scramble[num][1] = row; |
| 112 | 113 |
break; |
| src/main/java/org/distorted/objects/TwistyCube.java | ||
|---|---|---|
| 277 | 277 |
return getNumLayers(); |
| 278 | 278 |
} |
| 279 | 279 |
|
| 280 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 281 |
|
|
| 282 |
float[] getRowChances(int numLayers) |
|
| 283 |
{
|
|
| 284 |
float[] chances = new float[numLayers]; |
|
| 285 |
|
|
| 286 |
for(int i=0; i<numLayers; i++) |
|
| 287 |
{
|
|
| 288 |
chances[i] = (i+1.0f) / numLayers; |
|
| 289 |
} |
|
| 290 |
|
|
| 291 |
return chances; |
|
| 292 |
} |
|
| 293 |
|
|
| 294 | 280 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 295 | 281 |
// PUBLIC API |
| 296 | 282 |
|
| ... | ... | |
| 321 | 307 |
} |
| 322 | 308 |
|
| 323 | 309 |
float rowFloat = rnd.nextFloat(); |
| 310 |
int numLayers = getNumLayers(); |
|
| 324 | 311 |
|
| 325 |
for(int row=0; row<mRowChances.length; row++)
|
|
| 312 |
for(int row=0; row<numLayers; row++)
|
|
| 326 | 313 |
{
|
| 327 |
if( rowFloat<=mRowChances[row] )
|
|
| 314 |
if( rowFloat*numLayers <= row+1 )
|
|
| 328 | 315 |
{
|
| 329 | 316 |
scramble[num][1] = row; |
| 330 | 317 |
break; |
| src/main/java/org/distorted/objects/TwistyDiamond.java | ||
|---|---|---|
| 500 | 500 |
return 1.5f; |
| 501 | 501 |
} |
| 502 | 502 |
|
| 503 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 504 |
|
|
| 505 |
float[] getRowChances(int numLayers) |
|
| 506 |
{
|
|
| 507 |
float[] chances = new float[numLayers]; |
|
| 508 |
|
|
| 509 |
for(int i=0; i<numLayers; i++) chances[i] = ((float)(i+1))/numLayers; |
|
| 510 |
|
|
| 511 |
return chances; |
|
| 512 |
} |
|
| 513 |
|
|
| 514 | 503 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 515 | 504 |
// PUBLIC API |
| 516 | 505 |
|
| ... | ... | |
| 541 | 530 |
} |
| 542 | 531 |
|
| 543 | 532 |
float rowFloat = rnd.nextFloat(); |
| 533 |
int numLayers = getNumLayers(); |
|
| 544 | 534 |
|
| 545 |
for(int row=0; row<mRowChances.length; row++)
|
|
| 535 |
for(int row=0; row<numLayers; row++)
|
|
| 546 | 536 |
{
|
| 547 |
if( rowFloat<=mRowChances[row] )
|
|
| 537 |
if( rowFloat*numLayers <= row+1 )
|
|
| 548 | 538 |
{
|
| 549 | 539 |
scramble[num][1] = row; |
| 550 | 540 |
break; |
| src/main/java/org/distorted/objects/TwistyDino.java | ||
|---|---|---|
| 226 | 226 |
return 2.0f; |
| 227 | 227 |
} |
| 228 | 228 |
|
| 229 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 230 |
|
|
| 231 |
float[] getRowChances(int numLayers) |
|
| 232 |
{
|
|
| 233 |
float[] chances = new float[3]; |
|
| 234 |
|
|
| 235 |
chances[0] = 0.5f; |
|
| 236 |
chances[1] = 0.5f; |
|
| 237 |
chances[2] = 1.0f; |
|
| 238 |
|
|
| 239 |
return chances; |
|
| 240 |
} |
|
| 241 |
|
|
| 242 | 229 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 243 | 230 |
// PUBLIC API |
| 244 | 231 |
|
| src/main/java/org/distorted/objects/TwistyHelicopter.java | ||
|---|---|---|
| 393 | 393 |
return 2.0f; |
| 394 | 394 |
} |
| 395 | 395 |
|
| 396 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 397 |
|
|
| 398 |
float[] getRowChances(int numLayers) |
|
| 399 |
{
|
|
| 400 |
float[] chances = new float[3]; |
|
| 401 |
|
|
| 402 |
chances[0] = 0.5f; |
|
| 403 |
chances[1] = 0.5f; |
|
| 404 |
chances[2] = 1.0f; |
|
| 405 |
|
|
| 406 |
return chances; |
|
| 407 |
} |
|
| 408 |
|
|
| 409 | 396 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 410 | 397 |
// PUBLIC API |
| 411 | 398 |
|
| ... | ... | |
| 446 | 433 |
} |
| 447 | 434 |
} |
| 448 | 435 |
|
| 449 |
float rowFloat = rnd.nextFloat(); |
|
| 450 |
|
|
| 451 |
for(int row=0; row<mRowChances.length; row++) |
|
| 452 |
{
|
|
| 453 |
if( rowFloat<=mRowChances[row] ) |
|
| 454 |
{
|
|
| 455 |
scramble[num][1] = row; |
|
| 456 |
break; |
|
| 457 |
} |
|
| 458 |
} |
|
| 436 |
scramble[num][1] = rnd.nextFloat()<=0.5f ? 0 : 2; |
|
| 459 | 437 |
|
| 460 | 438 |
switch( rnd.nextInt(2) ) |
| 461 | 439 |
{
|
| src/main/java/org/distorted/objects/TwistyIvy.java | ||
|---|---|---|
| 416 | 416 |
return 2.0f; |
| 417 | 417 |
} |
| 418 | 418 |
|
| 419 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 420 |
|
|
| 421 |
float[] getRowChances(int numLayers) |
|
| 422 |
{
|
|
| 423 |
float[] chances = new float[2]; |
|
| 424 |
chances[0] = 0.5f; |
|
| 425 |
chances[1] = 1.0f; |
|
| 426 |
|
|
| 427 |
return chances; |
|
| 428 |
} |
|
| 429 |
|
|
| 430 | 419 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 431 | 420 |
// PUBLIC API |
| 432 | 421 |
|
| ... | ... | |
| 456 | 445 |
scramble[num][0] = (newVector>=scramble[num-1][0] ? newVector+1 : newVector); |
| 457 | 446 |
} |
| 458 | 447 |
|
| 459 |
float rowFloat = rnd.nextFloat(); |
|
| 460 |
|
|
| 461 |
for(int row=0; row<mRowChances.length; row++) |
|
| 462 |
{
|
|
| 463 |
if( rowFloat<=mRowChances[row] ) |
|
| 464 |
{
|
|
| 465 |
scramble[num][1] = row; |
|
| 466 |
break; |
|
| 467 |
} |
|
| 468 |
} |
|
| 448 |
scramble[num][1] = rnd.nextFloat()<=0.5f ? 0 : 1; |
|
| 469 | 449 |
|
| 470 | 450 |
switch( rnd.nextInt(2) ) |
| 471 | 451 |
{
|
| src/main/java/org/distorted/objects/TwistyMinx.java | ||
|---|---|---|
| 324 | 324 |
mBasicCornerV[2] = new Static4D( 0, -0.500f, 0.0f, 0.0f ); |
| 325 | 325 |
} |
| 326 | 326 |
|
| 327 |
private static float[] mRowChances; |
|
| 327 | 328 |
|
| 328 | 329 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 329 | 330 |
|
| ... | ... | |
| 333 | 334 |
super(numLayers, realSize, quat, texture, mesh, effects, moves, obj, res, scrWidth); |
| 334 | 335 |
} |
| 335 | 336 |
|
| 337 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 338 |
|
|
| 339 |
private float[] getRowChances(int numLayers) |
|
| 340 |
{
|
|
| 341 |
float[] chances = new float[numLayers]; |
|
| 342 |
float denom = (float)(numLayers-1); |
|
| 343 |
int change = (numLayers-1)/2; |
|
| 344 |
|
|
| 345 |
for(int i= 0; i<change ; i++) chances[i] = (i+1)/denom; |
|
| 346 |
for(int i=change; i<numLayers; i++) chances[i] = (i )/denom; |
|
| 347 |
|
|
| 348 |
return chances; |
|
| 349 |
} |
|
| 350 |
|
|
| 336 | 351 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 337 | 352 |
|
| 338 | 353 |
Static4D[] getQuats() |
| ... | ... | |
| 368 | 383 |
return 2.0f; |
| 369 | 384 |
} |
| 370 | 385 |
|
| 371 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 372 |
|
|
| 373 |
float[] getRowChances(int numLayers) |
|
| 374 |
{
|
|
| 375 |
float[] chances = new float[numLayers]; |
|
| 376 |
float denom = (float)(numLayers-1); |
|
| 377 |
int change = (numLayers-1)/2; |
|
| 378 |
|
|
| 379 |
for(int i= 0; i<change ; i++) chances[i] = (i+1)/denom; |
|
| 380 |
for(int i=change; i<numLayers; i++) chances[i] = (i )/denom; |
|
| 381 |
|
|
| 382 |
return chances; |
|
| 383 |
} |
|
| 384 |
|
|
| 385 | 386 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 386 | 387 |
|
| 387 | 388 |
MeshBase createCornerMesh(int numLayers, float width) |
| ... | ... | |
| 458 | 459 |
|
| 459 | 460 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int num) |
| 460 | 461 |
{
|
| 462 |
int numLayers = getNumLayers(); |
|
| 463 |
|
|
| 464 |
if( mRowChances==null ) mRowChances = getRowChances(numLayers); |
|
| 465 |
|
|
| 461 | 466 |
if( num==0 ) |
| 462 | 467 |
{
|
| 463 | 468 |
scramble[num][0] = rnd.nextInt(ROTATION_AXIS.length); |
| ... | ... | |
| 472 | 477 |
{
|
| 473 | 478 |
float rowFloat = rnd.nextFloat(); |
| 474 | 479 |
|
| 475 |
for(int row=0; row<mRowChances.length; row++)
|
|
| 480 |
for(int row=0; row<numLayers; row++)
|
|
| 476 | 481 |
{
|
| 477 | 482 |
if( rowFloat<=mRowChances[row] ) |
| 478 | 483 |
{
|
| ... | ... | |
| 483 | 488 |
} |
| 484 | 489 |
else |
| 485 | 490 |
{
|
| 486 |
int size = mRowChances.length; |
|
| 487 |
int nom = (size-1)/2; |
|
| 491 |
int nom = (numLayers-1)/2; |
|
| 488 | 492 |
int row = rnd.nextInt(nom); |
| 489 | 493 |
boolean opposite = OPPOSITE_ROWS[scramble[num-1][0]][scramble[num][0]]; |
| 490 | 494 |
boolean low = opposite^(scramble[num-1][1]<nom); |
| 491 |
scramble[num][1] = low ? row : size-1-row;
|
|
| 495 |
scramble[num][1] = low ? row : numLayers-1-row;
|
|
| 492 | 496 |
} |
| 493 | 497 |
|
| 494 | 498 |
switch( rnd.nextInt(4) ) |
| src/main/java/org/distorted/objects/TwistyObject.java | ||
|---|---|---|
| 118 | 118 |
private int mRotAxis; |
| 119 | 119 |
private MeshBase mMesh; |
| 120 | 120 |
|
| 121 |
float[] mRowChances; |
|
| 122 | 121 |
Static1D mRotationAngleStatic, mRotationAngleMiddle, mRotationAngleFinal; |
| 123 | 122 |
DistortedTexture mTexture; |
| 124 | 123 |
MatrixEffectScale mScaleEffect; |
| ... | ... | |
| 159 | 158 |
mNodeScale= new Static3D(1,NODE_RATIO,1); |
| 160 | 159 |
mQuat = quat; |
| 161 | 160 |
|
| 162 |
mRowChances = getRowChances(mNumLayers); |
|
| 163 |
|
|
| 164 | 161 |
mRotationAngle= new Dynamic1D(); |
| 165 | 162 |
mRotationAxis = new Static3D(1,0,0); |
| 166 | 163 |
mRotateEffect = new VertexEffectRotate(mRotationAngle, mRotationAxis, CENTER); |
| ... | ... | |
| 965 | 962 |
abstract void createFaceTexture(Canvas canvas, Paint paint, int face, int left, int top); |
| 966 | 963 |
abstract int getFaceColor(int cubit, int cubitface, int numLayers); |
| 967 | 964 |
abstract float returnMultiplier(); |
| 968 |
abstract float[] getRowChances(int numLayers); |
|
| 969 | 965 |
abstract float[] getCuts(int numLayers); |
| 970 | 966 |
abstract boolean shouldResetTextureMaps(); |
| 971 | 967 |
|
| src/main/java/org/distorted/objects/TwistyPyraminx.java | ||
|---|---|---|
| 114 | 114 |
}; |
| 115 | 115 |
|
| 116 | 116 |
private static MeshBase[] mMeshes; |
| 117 |
private static float[] mRowChances; |
|
| 117 | 118 |
|
| 118 | 119 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 119 | 120 |
|
| ... | ... | |
| 123 | 124 |
super(size, size, quat, texture, mesh, effects, moves, ObjectList.PYRA, res, scrWidth); |
| 124 | 125 |
} |
| 125 | 126 |
|
| 127 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 128 |
|
|
| 129 |
private float[] getRowChances(int numLayers) |
|
| 130 |
{
|
|
| 131 |
int total = numLayers*(numLayers+1)/2; |
|
| 132 |
float running=0.0f; |
|
| 133 |
float[] chances = new float[numLayers]; |
|
| 134 |
|
|
| 135 |
for(int i=0; i<numLayers; i++) |
|
| 136 |
{
|
|
| 137 |
running += (numLayers-i); |
|
| 138 |
chances[i] = running / total; |
|
| 139 |
} |
|
| 140 |
|
|
| 141 |
return chances; |
|
| 142 |
} |
|
| 143 |
|
|
| 126 | 144 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 127 | 145 |
|
| 128 | 146 |
private void addTetrahedralLattice(int size, int index, float[][] pos) |
| ... | ... | |
| 349 | 367 |
return getNumLayers()/(SQ6/3); |
| 350 | 368 |
} |
| 351 | 369 |
|
| 352 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 353 |
|
|
| 354 |
float[] getRowChances(int numLayers) |
|
| 355 |
{
|
|
| 356 |
int total = numLayers*(numLayers+1)/2; |
|
| 357 |
float running=0.0f; |
|
| 358 |
float[] chances = new float[numLayers]; |
|
| 359 |
|
|
| 360 |
for(int i=0; i<numLayers; i++) |
|
| 361 |
{
|
|
| 362 |
running += (numLayers-i); |
|
| 363 |
chances[i] = running / total; |
|
| 364 |
} |
|
| 365 |
|
|
| 366 |
return chances; |
|
| 367 |
} |
|
| 368 |
|
|
| 369 | 370 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 370 | 371 |
// PUBLIC API |
| 371 | 372 |
|
| ... | ... | |
| 385 | 386 |
|
| 386 | 387 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int num) |
| 387 | 388 |
{
|
| 389 |
int numLayers = getNumLayers(); |
|
| 390 |
|
|
| 391 |
if( mRowChances==null ) mRowChances = getRowChances(numLayers); |
|
| 392 |
|
|
| 388 | 393 |
if( num==0 ) |
| 389 | 394 |
{
|
| 390 | 395 |
scramble[num][0] = rnd.nextInt(ROTATION_AXIS.length); |
| ... | ... | |
| 397 | 402 |
|
| 398 | 403 |
float rowFloat = rnd.nextFloat(); |
| 399 | 404 |
|
| 400 |
for(int row=0; row<mRowChances.length; row++)
|
|
| 405 |
for(int row=0; row<numLayers; row++)
|
|
| 401 | 406 |
{
|
| 402 | 407 |
if( rowFloat<=mRowChances[row] ) |
| 403 | 408 |
{
|
| src/main/java/org/distorted/objects/TwistyRedi.java | ||
|---|---|---|
| 406 | 406 |
return 2.0f; |
| 407 | 407 |
} |
| 408 | 408 |
|
| 409 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 410 |
|
|
| 411 |
float[] getRowChances(int numLayers) |
|
| 412 |
{
|
|
| 413 |
float[] chances = new float[3]; |
|
| 414 |
|
|
| 415 |
chances[0] = 0.5f; |
|
| 416 |
chances[1] = 0.5f; |
|
| 417 |
chances[2] = 1.0f; |
|
| 418 |
|
|
| 419 |
return chances; |
|
| 420 |
} |
|
| 421 |
|
|
| 422 | 409 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 423 | 410 |
// PUBLIC API |
| 424 | 411 |
|
| src/main/java/org/distorted/objects/TwistyRex.java | ||
|---|---|---|
| 581 | 581 |
return 2.0f; |
| 582 | 582 |
} |
| 583 | 583 |
|
| 584 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 585 |
|
|
| 586 |
float[] getRowChances(int numLayers) |
|
| 587 |
{
|
|
| 588 |
return new float[] { 0.5f, 0.5f, 1.0f };
|
|
| 589 |
} |
|
| 590 |
|
|
| 591 | 584 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 592 | 585 |
// PUBLIC API |
| 593 | 586 |
|
| ... | ... | |
| 617 | 610 |
scramble[num][0] = (newVector>=scramble[num-1][0] ? newVector+1 : newVector); |
| 618 | 611 |
} |
| 619 | 612 |
|
| 620 |
float rowFloat = rnd.nextFloat(); |
|
| 621 |
|
|
| 622 |
for(int row=0; row<mRowChances.length; row++) |
|
| 623 |
{
|
|
| 624 |
if( rowFloat<=mRowChances[row] ) |
|
| 625 |
{
|
|
| 626 |
scramble[num][1] = row; |
|
| 627 |
break; |
|
| 628 |
} |
|
| 629 |
} |
|
| 613 |
scramble[num][1] = rnd.nextFloat()<=0.5f ? 0 : 2; |
|
| 630 | 614 |
|
| 631 | 615 |
switch( rnd.nextInt(2) ) |
| 632 | 616 |
{
|
| src/main/java/org/distorted/objects/TwistySkewb.java | ||
|---|---|---|
| 601 | 601 |
return 2.0f; |
| 602 | 602 |
} |
| 603 | 603 |
|
| 604 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 605 |
|
|
| 606 |
float[] getRowChances(int numLayers) |
|
| 607 |
{
|
|
| 608 |
float[] chances = new float[numLayers]; |
|
| 609 |
|
|
| 610 |
switch(numLayers) |
|
| 611 |
{
|
|
| 612 |
case 2: chances[0] = 0.5f; |
|
| 613 |
chances[1] = 1.0f; |
|
| 614 |
break; |
|
| 615 |
case 3: chances[0] = 0.5f; |
|
| 616 |
chances[1] = 0.5f; |
|
| 617 |
chances[2] = 1.0f; |
|
| 618 |
break; |
|
| 619 |
default:for(int i=0; i<numLayers; i++) |
|
| 620 |
{
|
|
| 621 |
chances[i] = (float)(i+1)/numLayers; |
|
| 622 |
} |
|
| 623 |
} |
|
| 624 |
|
|
| 625 |
return chances; |
|
| 626 |
} |
|
| 627 |
|
|
| 628 | 604 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 629 | 605 |
// PUBLIC API |
| 630 | 606 |
|
| ... | ... | |
| 654 | 630 |
scramble[num][0] = (newVector>=scramble[num-1][0] ? newVector+1 : newVector); |
| 655 | 631 |
} |
| 656 | 632 |
|
| 657 |
float rowFloat = rnd.nextFloat(); |
|
| 658 |
|
|
| 659 |
for(int row=0; row<mRowChances.length; row++) |
|
| 660 |
{
|
|
| 661 |
if( rowFloat<=mRowChances[row] ) |
|
| 662 |
{
|
|
| 663 |
scramble[num][1] = row; |
|
| 664 |
break; |
|
| 665 |
} |
|
| 666 |
} |
|
| 633 |
scramble[num][1] = rnd.nextFloat()<=0.5f ? 0 : getNumLayers()-1; |
|
| 667 | 634 |
|
| 668 | 635 |
switch( rnd.nextInt(2) ) |
| 669 | 636 |
{
|
| src/main/java/org/distorted/objects/TwistySquare1.java | ||
|---|---|---|
| 200 | 200 |
{ 5,NUM_ST,2, 2,NUM_ST,NUM_ST }
|
| 201 | 201 |
}; |
| 202 | 202 |
|
| 203 |
// YELLOW 0 WHITE 1 BLUE 2 GREEN 3 RED 4 ORANGE 5
|
|
| 203 |
// YELLOW 0 WHITE 1 BLUE 2 GREEN 3 RED 4 ORANGE 5 |
|
| 204 | 204 |
private static final int[][] mStickerColor = new int[][] |
| 205 | 205 |
{
|
| 206 | 206 |
{ 0, 0, 4, 0, 5, 0 },
|
| ... | ... | |
| 350 | 350 |
{
|
| 351 | 351 |
case 0: R = 0.06f; S = 0.05f; break; |
| 352 | 352 |
case 1: R = 0.04f; S = 0.04f; break; |
| 353 |
case 2: R = 0.10f; S = 0.08f; break;
|
|
| 353 |
case 2: R = 0.11f; S = 0.09f; break;
|
|
| 354 | 354 |
case 3: R = 0.03f; S = 0.05f; break; |
| 355 | 355 |
case 4: R = 0.11f; S = 0.08f; break; |
| 356 | 356 |
case 5: R = 0.08f; S = 0.08f; break; |
| ... | ... | |
| 445 | 445 |
return 1.0f; |
| 446 | 446 |
} |
| 447 | 447 |
|
| 448 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 449 |
// TODO |
|
| 450 |
|
|
| 451 |
float[] getRowChances(int numLayers) |
|
| 452 |
{
|
|
| 453 |
float[] chances = new float[numLayers]; |
|
| 454 |
|
|
| 455 |
for(int i=0; i<numLayers; i++) |
|
| 456 |
{
|
|
| 457 |
chances[i] = (i+1.0f) / numLayers; |
|
| 458 |
} |
|
| 459 |
|
|
| 460 |
return chances; |
|
| 461 |
} |
|
| 462 |
|
|
| 463 | 448 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 464 | 449 |
// PUBLIC API |
| 465 | 450 |
|
| ... | ... | |
| 491 | 476 |
scramble[num][0] = (newVector>=scramble[num-1][0] ? newVector+1 : newVector); |
| 492 | 477 |
} |
| 493 | 478 |
|
| 494 |
float rowFloat = rnd.nextFloat(); |
|
| 495 |
|
|
| 496 |
for(int row=0; row<mRowChances.length; row++) |
|
| 497 |
{
|
|
| 498 |
if( rowFloat<=mRowChances[row] ) |
|
| 499 |
{
|
|
| 500 |
scramble[num][1] = row; |
|
| 501 |
break; |
|
| 502 |
} |
|
| 503 |
} |
|
| 479 |
scramble[num][1] = rnd.nextFloat()<=0.5f ? 0 : 1; |
|
| 504 | 480 |
|
| 505 | 481 |
switch( rnd.nextInt(4) ) |
| 506 | 482 |
{
|
| src/main/java/org/distorted/objects/TwistyUltimate.java | ||
|---|---|---|
| 424 | 424 |
return 0.67f; |
| 425 | 425 |
} |
| 426 | 426 |
|
| 427 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 428 |
|
|
| 429 |
float[] getRowChances(int numLayers) |
|
| 430 |
{
|
|
| 431 |
float[] chances = new float[2]; |
|
| 432 |
chances[0] = 0.5f; |
|
| 433 |
chances[1] = 1.0f; |
|
| 434 |
|
|
| 435 |
return chances; |
|
| 436 |
} |
|
| 437 |
|
|
| 438 | 427 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 439 | 428 |
// PUBLIC API |
| 440 | 429 |
|
| ... | ... | |
| 464 | 453 |
scramble[num][0] = (newVector>=scramble[num-1][0] ? newVector+1 : newVector); |
| 465 | 454 |
} |
| 466 | 455 |
|
| 467 |
float rowFloat = rnd.nextFloat(); |
|
| 468 |
|
|
| 469 |
for(int row=0; row<mRowChances.length; row++) |
|
| 470 |
{
|
|
| 471 |
if( rowFloat<=mRowChances[row] ) |
|
| 472 |
{
|
|
| 473 |
scramble[num][1] = row; |
|
| 474 |
break; |
|
| 475 |
} |
|
| 476 |
} |
|
| 456 |
scramble[num][1] = rnd.nextFloat()<=0.5f ? 0 : 1; |
|
| 477 | 457 |
|
| 478 | 458 |
switch( rnd.nextInt(2) ) |
| 479 | 459 |
{
|
Also available in: Unified diff
Remove the need for RowChances.