Project

General

Profile

« Previous | Next » 

Revision 5043d5d0

Added by Leszek Koltunski about 3 years ago

Refactor the automatic scrambling. From now on, it is not needed to care about single and double turns when randomizing a new turn.

View differences:

src/main/java/org/distorted/objects/TwistyBandagedFused.java
100 100

  
101 101
///////////////////////////////////////////////////////////////////////////////////////////////////
102 102

  
103
  public void randomizeNewScramble(int[] scramble, Random rnd, int oldRotAxis, int oldRow,
104
                                   int numScramble, int remScrambles, int remDoubleScrambles)
103
  public void randomizeNewScramble(int[][] scramble, Random rnd, int num)
105 104
    {
106
    if( numScramble==1 )
105
    if( num==0 )
107 106
      {
108
      scramble[0] = rnd.nextInt(ROTATION_AXIS.length);
107
      scramble[num][0] = rnd.nextInt(ROTATION_AXIS.length);
109 108
      }
110 109
    else
111 110
      {
112 111
      int newVector = rnd.nextInt(ROTATION_AXIS.length-1);
113
      scramble[0] = (newVector>=oldRotAxis ? newVector+1 : newVector);
112
      scramble[num][0] = (newVector>=scramble[num-1][0] ? newVector+1 : newVector);
114 113
      }
115 114

  
116 115
    float rowFloat = rnd.nextFloat();
......
119 118
      {
120 119
      if( rowFloat<=mRowChances[row] )
121 120
        {
122
        scramble[1] = row;
121
        scramble[num][1] = row;
123 122
        break;
124 123
        }
125 124
      }
126 125

  
127
    int random = rnd.nextInt(remScrambles);
128
    int result = random<remDoubleScrambles ? 2:1;
129
    int sign   = rnd.nextInt(2);
130

  
131
    scramble[2] = sign==0 ? result : -result;
126
    switch( rnd.nextInt(4) )
127
      {
128
      case 0: scramble[num][2] = -2; break;
129
      case 1: scramble[num][2] = -1; break;
130
      case 2: scramble[num][2] =  1; break;
131
      case 3: scramble[num][2] =  2; break;
132
      }
132 133
    }
133 134

  
134 135
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff