Revision 38589947
Added by Leszek Koltunski about 4 years ago
| src/main/java/org/distorted/objects/TwistyBandagedEvil.java | ||
|---|---|---|
| 34 | 34 |
|
| 35 | 35 |
class TwistyBandagedEvil extends TwistyBandagedAbstract |
| 36 | 36 |
{
|
| 37 |
private int mCurrState; |
|
| 38 |
private int mIndexExcluded; |
|
| 37 |
private static final float[][] POSITIONS = new float[][] |
|
| 38 |
{
|
|
| 39 |
{ 1.0f, 1.0f, -1.0f},
|
|
| 40 |
{-1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f},
|
|
| 41 |
{-1.0f, 1.0f, -1.0f, 0.0f, 1.0f, -1.0f},
|
|
| 42 |
{-1.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f},
|
|
| 43 |
{-1.0f, -1.0f, -1.0f, 0.0f, -1.0f, -1.0f},
|
|
| 44 |
{-1.0f, 1.0f, 0.0f, -1.0f, 1.0f, 1.0f},
|
|
| 45 |
{ 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f},
|
|
| 46 |
{ 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f},
|
|
| 47 |
{-1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 1.0f},
|
|
| 48 |
{ 0.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f},
|
|
| 49 |
{ 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
|
| 50 |
{ 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f},
|
|
| 51 |
{ 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, -1.0f}
|
|
| 52 |
}; |
|
| 39 | 53 |
|
| 40 |
// The list of all 'significant' states of the Evil Cube, just like in the 3Plate Cube class. |
|
| 41 |
// This time the list got computed automatically - by the ScrambleStateGraphProducer.computeGraph(). |
|
| 54 |
private static final int[] QUAT_INDICES = new int[] |
|
| 55 |
{ 0, 1, 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, 3 };
|
|
| 56 |
|
|
| 57 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 58 |
|
|
| 59 |
TwistyBandagedEvil(int size, Static4D quat, DistortedTexture texture, MeshSquare mesh, |
|
| 60 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
|
| 61 |
{
|
|
| 62 |
super(size, quat, texture, mesh, effects, moves, ObjectList.BAN4, res, scrWidth); |
|
| 42 | 63 |
|
| 43 |
private final ScrambleStateGraph[] mStates = new ScrambleStateGraph[]
|
|
| 64 |
mStates = new ScrambleStateGraph[] |
|
| 44 | 65 |
{
|
| 45 | 66 |
new ScrambleStateGraph( new int[][] {{2, 1, 1,2,-1, 2} , {2, 2,142,2,-1, 28} , {0, 1,114} }), //0
|
| 46 | 67 |
new ScrambleStateGraph( new int[][] {{2, 2, 2} , {2,-1,143} , {} }),
|
| ... | ... | |
| 187 | 208 |
new ScrambleStateGraph( new int[][] {{} , {2, 1, 28} , {2,-1, 18} }),
|
| 188 | 209 |
new ScrambleStateGraph( new int[][] {{} , {2, 1, 1} , {2, 2, 12,2,-1, 13} })
|
| 189 | 210 |
}; |
| 190 |
|
|
| 191 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 192 |
|
|
| 193 |
private static final float[][] POSITIONS = new float[][] |
|
| 194 |
{
|
|
| 195 |
{ 1.0f, 1.0f, -1.0f},
|
|
| 196 |
{-1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f},
|
|
| 197 |
{-1.0f, 1.0f, -1.0f, 0.0f, 1.0f, -1.0f},
|
|
| 198 |
{-1.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f},
|
|
| 199 |
{-1.0f, -1.0f, -1.0f, 0.0f, -1.0f, -1.0f},
|
|
| 200 |
{-1.0f, 1.0f, 0.0f, -1.0f, 1.0f, 1.0f},
|
|
| 201 |
{ 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f},
|
|
| 202 |
{ 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f},
|
|
| 203 |
{-1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 1.0f},
|
|
| 204 |
{ 0.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f},
|
|
| 205 |
{ 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
|
| 206 |
{ 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f},
|
|
| 207 |
{ 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, -1.0f}
|
|
| 208 |
}; |
|
| 209 |
|
|
| 210 |
private static final int[] QUAT_INDICES = new int[] |
|
| 211 |
{ 0, 1, 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, 3 };
|
|
| 212 |
|
|
| 213 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 214 |
|
|
| 215 |
TwistyBandagedEvil(int size, Static4D quat, DistortedTexture texture, MeshSquare mesh, |
|
| 216 |
DistortedEffects effects, int[][] moves, Resources res, int scrWidth) |
|
| 217 |
{
|
|
| 218 |
super(size, quat, texture, mesh, effects, moves, ObjectList.BAN4, res, scrWidth); |
|
| 219 | 211 |
} |
| 220 | 212 |
|
| 221 | 213 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 235 | 227 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 236 | 228 |
// PUBLIC API |
| 237 | 229 |
|
| 238 |
public void randomizeNewScramble(int[][] scramble, Random rnd, int curr, int totalScrambles) |
|
| 239 |
{
|
|
| 240 |
if( curr==0 ) |
|
| 241 |
{
|
|
| 242 |
mCurrState = 0; |
|
| 243 |
mIndexExcluded =-1; |
|
| 244 |
} |
|
| 245 |
|
|
| 246 |
int total = mStates[mCurrState].getTotal(mIndexExcluded); |
|
| 247 |
int random= rnd.nextInt(total); |
|
| 248 |
int[] info= mStates[mCurrState].getInfo(random,mIndexExcluded); |
|
| 249 |
|
|
| 250 |
scramble[curr][0] = info[0]; |
|
| 251 |
scramble[curr][1] = info[1]; |
|
| 252 |
scramble[curr][2] = info[2]; |
|
| 253 |
|
|
| 254 |
mCurrState = info[3]; |
|
| 255 |
mIndexExcluded = info[0]; |
|
| 256 |
} |
|
| 257 |
|
|
| 258 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 259 |
|
|
| 260 | 230 |
public int getObjectName(int numLayers) |
| 261 | 231 |
{
|
| 262 | 232 |
return R.string.bandaged_evil; |
Also available in: Unified diff
Unify scrambling across all 4 bandaged objects.