Project

General

Profile

« Previous | Next » 

Revision 2067efd8

Added by Leszek Koltunski about 4 years ago

Fully support the 4-color Dino.

View differences:

src/main/java/org/distorted/objects/RubikDino.java
411 411
      }
412 412
    }
413 413

  
414
///////////////////////////////////////////////////////////////////////////////////////////////////
415

  
416
  public int randomizeNewRow(Random rnd, int oldRotAxis, int oldRow, int newRotAxis)
417
    {
418
    float rowFloat = rnd.nextFloat();
419

  
420
    switch(oldRotAxis)
421
      {
422
      case 0 : switch(newRotAxis)
423
                 {
424
                 case 1:
425
                 case 2: return oldRow;
426
                 case 3: return 2-oldRow;
427
                 default: android.util.Log.e("dino", "error: oldRotAxis="+oldRotAxis+" newRotAxis:"+newRotAxis);
428
                 }
429
      case 1 : switch(newRotAxis)
430
                 {
431
                 case 0:
432
                 case 3: return oldRow;
433
                 case 2: return 2-oldRow;
434
                 default: android.util.Log.e("dino", "error: oldRotAxis="+oldRotAxis+" newRotAxis:"+newRotAxis);
435
                 }
436
      case 2 : switch(newRotAxis)
437
                 {
438
                 case 0:
439
                 case 3: return oldRow;
440
                 case 1: return 2-oldRow;
441
                 default: android.util.Log.e("dino", "error: oldRotAxis="+oldRotAxis+" newRotAxis:"+newRotAxis);
442
                 }
443
      case 3 : switch(newRotAxis)
444
                 {
445
                 case 1:
446
                 case 2: return oldRow;
447
                 case 0: return 2-oldRow;
448
                 default: android.util.Log.e("dino", "error: oldRotAxis="+oldRotAxis+" newRotAxis:"+newRotAxis);
449
                 }
450
      default: return rowFloat<=0.5f ? 0:2;
451
      }
452
    }
453

  
454 414
///////////////////////////////////////////////////////////////////////////////////////////////////
455 415
// only needed for solvers - there are no Dino solvers ATM)
456 416

  
src/main/java/org/distorted/objects/RubikDino4.java
25 25
import org.distorted.library.main.DistortedTexture;
26 26
import org.distorted.library.mesh.MeshSquare;
27 27
import org.distorted.library.type.Static4D;
28
import org.distorted.main.RubikSurfaceView;
28

  
29
import java.util.Random;
30

  
31
import static org.distorted.effects.scramble.ScrambleEffect.START_AXIS;
29 32

  
30 33
///////////////////////////////////////////////////////////////////////////////////////////////////
31 34

  
......
62 65
    return true;
63 66
    }
64 67

  
68
///////////////////////////////////////////////////////////////////////////////////////////////////
69

  
70
  public int randomizeNewRow(Random rnd, int oldRotAxis, int oldRow, int newRotAxis)
71
    {
72
    return (oldRotAxis==START_AXIS) ? ((newRotAxis==1 || newRotAxis==2) ? 0:2) : (oldRotAxis+newRotAxis==3 ? 2-oldRow : oldRow);
73
    }
74

  
65 75
///////////////////////////////////////////////////////////////////////////////////////////////////
66 76
// Dino4 is solved if and only if the four groups of three same-colored cubits each are rotate with
67 77
// the same quaternion (actually we need to check only 3 first groups - if those are correct, the
src/main/java/org/distorted/objects/RubikDino6.java
27 27
import org.distorted.library.type.Static4D;
28 28
import org.distorted.main.RubikSurfaceView;
29 29

  
30
import java.util.Random;
31

  
32
import static org.distorted.effects.scramble.ScrambleEffect.START_AXIS;
33

  
30 34
///////////////////////////////////////////////////////////////////////////////////////////////////
31 35

  
32 36
public class RubikDino6 extends RubikDino
......
102 106
    return false;
103 107
    }
104 108

  
109
///////////////////////////////////////////////////////////////////////////////////////////////////
110

  
111
  public int randomizeNewRow(Random rnd, int oldRotAxis, int oldRow, int newRotAxis)
112
    {
113
    return (oldRotAxis==START_AXIS) ? (rnd.nextFloat()<=0.5f ? 0:2) : (oldRotAxis+newRotAxis==3 ? 2-oldRow : oldRow);
114
    }
115

  
105 116
///////////////////////////////////////////////////////////////////////////////////////////////////
106 117
// Dino6 is solved if and only if:
107 118
//

Also available in: Unified diff