Revision 5043d5d0
Added by Leszek Koltunski about 3 years ago
src/main/java/org/distorted/objects/TwistyBandagedEvil.java | ||
---|---|---|
119 | 119 |
// PUBLIC API |
120 | 120 |
// TODO |
121 | 121 |
|
122 |
public void randomizeNewScramble(int[] scramble, Random rnd, int oldRotAxis, int oldRow, |
|
123 |
int numScramble, int remScrambles, int remDoubleScrambles) |
|
122 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int num) |
|
124 | 123 |
{ |
125 |
if( numScramble==1 )
|
|
124 |
if( num==0 )
|
|
126 | 125 |
{ |
127 |
scramble[0] = rnd.nextInt(ROTATION_AXIS.length); |
|
126 |
scramble[num][0] = rnd.nextInt(ROTATION_AXIS.length);
|
|
128 | 127 |
} |
129 | 128 |
else |
130 | 129 |
{ |
131 | 130 |
int newVector = rnd.nextInt(ROTATION_AXIS.length-1); |
132 |
scramble[0] = (newVector>=oldRotAxis ? newVector+1 : newVector);
|
|
131 |
scramble[num][0] = (newVector>=scramble[num-1][0] ? newVector+1 : newVector);
|
|
133 | 132 |
} |
134 | 133 |
|
135 | 134 |
float rowFloat = rnd.nextFloat(); |
... | ... | |
138 | 137 |
{ |
139 | 138 |
if( rowFloat<=mRowChances[row] ) |
140 | 139 |
{ |
141 |
scramble[1] = row; |
|
140 |
scramble[num][1] = row;
|
|
142 | 141 |
break; |
143 | 142 |
} |
144 | 143 |
} |
145 | 144 |
|
146 |
int random = rnd.nextInt(remScrambles); |
|
147 |
int result = random<remDoubleScrambles ? 2:1; |
|
148 |
int sign = rnd.nextInt(2); |
|
149 |
|
|
150 |
scramble[2] = sign==0 ? result : -result; |
|
145 |
switch( rnd.nextInt(4) ) |
|
146 |
{ |
|
147 |
case 0: scramble[num][2] = -2; break; |
|
148 |
case 1: scramble[num][2] = -1; break; |
|
149 |
case 2: scramble[num][2] = 1; break; |
|
150 |
case 3: scramble[num][2] = 2; break; |
|
151 |
} |
|
151 | 152 |
} |
152 | 153 |
|
153 | 154 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Refactor the automatic scrambling. From now on, it is not needed to care about single and double turns when randomizing a new turn.