Project

General

Profile

Download (26.3 KB) Statistics
| Branch: | Tag: | Revision:

magiccube / src / main / java / org / distorted / objects / TwistyBandagedEvil.java @ eaf87d1d

1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2021 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6
// Magic Cube is free software: you can redistribute it and/or modify                            //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Magic Cube is distributed in the hope that it will be useful,                                 //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Magic Cube.  If not, see <http://www.gnu.org/licenses/>.                           //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19

    
20
package org.distorted.objects;
21

    
22
import android.content.res.Resources;
23

    
24
import org.distorted.helpers.BandagedState;
25
import org.distorted.library.main.DistortedEffects;
26
import org.distorted.library.main.DistortedTexture;
27
import org.distorted.library.mesh.MeshSquare;
28
import org.distorted.library.type.Static4D;
29
import org.distorted.main.R;
30

    
31
import java.util.Random;
32

    
33
///////////////////////////////////////////////////////////////////////////////////////////////////
34

    
35
class TwistyBandagedEvil extends TwistyBandagedAbstract
36
{
37
   private int mCurrState;
38
   private boolean mUseX;
39
   private boolean mUseY;
40
   private boolean mUseZ;
41

    
42
   // The list of all 'significant' states of the Evil Cube, just like in the 3Plate Cube class.
43
   // This time the list got computed automatically - by the BandagedStateGraph.computeGraph().
44

    
45
   private final BandagedState[] mStates = new BandagedState[]
46
     {
47
     new BandagedState( new int[] {2, 1,  1,2,-1,  2}         , new int[] {2, 2,142,2,-1, 28}         , new int[] {0, 1,114}                   ),
48
     new BandagedState( new int[] {2, 2,  2}                  , new int[] {2,-1,143}                  , null                                   ),
49
     new BandagedState( new int[] {2, 2,  1}                  , null                                  , new int[] {0, 1,  3,0, 2, 47}          ),
50
     new BandagedState( new int[] {2, 1,  4}                  , new int[] {2, 1,132,2,-1,131}         , new int[] {0, 1, 47,0,-1,  2}          ),
51
     new BandagedState( new int[] {2,-1,  3}                  , new int[] {2, 1,  5,2,-1,  6}         , null                                   ),
52
     new BandagedState( null                                  , new int[] {2, 2,  6,2,-1,  4}         , new int[] {0, 1, 51}                   ),
53
     new BandagedState( null                                  , new int[] {2, 1,  4,2, 2,  5}         , new int[] {2, 2,  7,2,-1, 80}          ),
54
     new BandagedState( new int[] {2, 2,  8}                  , null                                  , new int[] {2, 1, 80,2, 2,  6}          ),
55
     new BandagedState( new int[] {2, 2,  7}                  , null                                  , new int[] {0,-1,  9}                   ),
56
     new BandagedState( new int[] {2, 1, 10,2, 2, 11,2,-1, 12}, null                                  , new int[] {0, 1,  8}                   ),
57
     new BandagedState( new int[] {2, 1, 11,2, 2, 12,2,-1,  9}, null                                  , new int[] {0,-1,118}                   ),
58
     new BandagedState( new int[] {2, 1, 12,2, 2,  9,2,-1, 10}, null                                  , new int[] {2, 1, 77}                   ),
59
     new BandagedState( new int[] {2, 1,  9,2, 2, 10,2,-1, 11}, null                                  , new int[] {2, 1, 13,2, 2,143}          ),
60
     new BandagedState( new int[] {2, 1, 14,2, 2, 15,2,-1, 16}, new int[] {2, 1, 57,2,-1, 58}         , new int[] {2, 1,143,2,-1, 12}          ),
61
     new BandagedState( new int[] {2, 1, 15,2, 2, 16,2,-1, 13}, null                                  , new int[] {2, 1, 41}                   ),
62
     new BandagedState( new int[] {2, 1, 16,2, 2, 13,2,-1, 14}, null                                  , new int[] {0, 1, 82}                   ),
63
     new BandagedState( new int[] {2, 1, 13,2, 2, 14,2,-1, 15}, new int[] {2, 1, 17,2,-1, 18}         , new int[] {0, 1,111,0,-1,115}          ),
64
     new BandagedState( null                                  , new int[] {2, 2, 18,2,-1, 16}         , new int[] {0,-1,139}                   ),
65
     new BandagedState( new int[] {2, 1, 19,2,-1, 20}         , new int[] {2, 1, 16,2, 2, 17}         , new int[] {2, 1,142}                   ),
66
     new BandagedState( new int[] {2, 2, 20,2,-1, 18}         , null                                  , new int[] {2, 1, 39,2, 2,140}          ),
67
     new BandagedState( new int[] {2, 1, 18,2, 2, 19}         , new int[] {2, 1, 21}                  , null                                   ),
68
     new BandagedState( null                                  , new int[] {2,-1, 20}                  , new int[] {0,-1, 22}                   ),
69
     new BandagedState( new int[] {2, 2, 23,2,-1, 24}         , null                                  , new int[] {0, 1, 21}                   ),
70
     new BandagedState( new int[] {2, 1, 24,2, 2, 22}         , null                                  , new int[] {2, 1, 92}                   ),
71
     new BandagedState( new int[] {2, 1, 22,2,-1, 23}         , null                                  , new int[] {0, 1, 25}                   ),
72
     new BandagedState( new int[] {2, 1, 26,2, 2, 27}         , null                                  , new int[] {0,-1, 24}                   ),
73
     new BandagedState( new int[] {2, 1, 27,2,-1, 25}         , new int[] {2, 1, 74}                  , null                                   ),
74
     new BandagedState( new int[] {2, 2, 25,2,-1, 26}         , null                                  , new int[] {2, 1, 28,2, 2,124}          ),
75
     new BandagedState( new int[] {2, 1, 29,2, 2, 30,2,-1, 31}, new int[] {2,-1,142}                  , new int[] {2, 1,124,2,-1, 27}          ),
76
     new BandagedState( new int[] {2, 1, 30,2, 2, 31,2,-1, 28}, null                                  , new int[] {2, 1,141}                   ),
77
     new BandagedState( new int[] {2, 1, 31,2, 2, 28,2,-1, 29}, null                                  , new int[] {0, 1,130}                   ),
78
     new BandagedState( new int[] {2, 1, 28,2, 2, 29,2,-1, 30}, new int[] {2, 1, 32,2,-1, 33}         , new int[] {0, 1, 89,0,-1, 90}          ),
79
     new BandagedState( null                                  , new int[] {2, 2, 33,2,-1, 31}         , new int[] {0,-1,137}                   ),
80
     new BandagedState( new int[] {2, 1, 34}                  , new int[] {2, 1, 31,2, 2, 32}         , null                                   ),
81
     new BandagedState( new int[] {2,-1, 33}                  , null                                  , new int[] {2, 1, 35}                   ),
82
     new BandagedState( null                                  , new int[] {2,-1, 36}                  , new int[] {2,-1, 34}                   ),
83
     new BandagedState( null                                  , new int[] {2, 1, 35}                  , new int[] {2,-1, 37}                   ),
84
     new BandagedState( null                                  , new int[] {2, 1, 38,2, 2, 93}         , new int[] {2, 1, 36}                   ),
85
     new BandagedState( new int[] {2, 1, 39}                  , new int[] {2, 1, 93,2,-1, 37}         , null                                   ),
86
     new BandagedState( new int[] {2,-1, 38}                  , new int[] {2, 1, 40,2,-1, 64}         , new int[] {2, 1,140,2,-1, 19}          ),
87
     new BandagedState( new int[] {2, 1, 41,2,-1, 42}         , new int[] {2, 2, 64,2,-1, 39}         , null                                   ),
88
     new BandagedState( new int[] {2, 2, 42,2,-1, 40}         , null                                  , new int[] {2,-1, 14}                   ),
89
     new BandagedState( new int[] {2, 1, 40,2, 2, 41}         , null                                  , new int[] {0, 1, 43,0, 2,128}          ),
90
     new BandagedState( new int[] {2, 1, 44,2,-1, 45}         , new int[] {2, 1,114,2, 2,113,2,-1, 86}, new int[] {0, 1,128,0,-1, 42}          ),
91
     new BandagedState( new int[] {2, 2, 45,2,-1, 43}         , new int[] {2, 1, 48,2,-1,108}         , new int[] {2,-1, 81}                   ),
92
     new BandagedState( new int[] {2, 1, 43,2, 2, 44}         , null                                  , new int[] {0, 1, 46}                   ),
93
     new BandagedState( null                                  , new int[] {2, 1, 47}                  , new int[] {0,-1, 45}                   ),
94
     new BandagedState( null                                  , new int[] {2,-1, 46}                  , new int[] {0, 2,  2,0,-1,  3}          ),
95
     new BandagedState( new int[] {2,-1, 49}                  , new int[] {2, 2,108,2,-1, 44}         , null                                   ),
96
     new BandagedState( new int[] {2, 1, 48}                  , null                                  , new int[] {0, 1, 50}                   ),
97
     new BandagedState( null                                  , new int[] {2, 1, 51,2, 2, 52}         , new int[] {0,-1, 49}                   ),
98
     new BandagedState( null                                  , new int[] {2, 1, 52,2,-1, 50}         , new int[] {0,-1,  5}                   ),
99
     new BandagedState( null                                  , new int[] {2, 2, 50,2,-1, 51}         , new int[] {2,-1, 53}                   ),
100
     new BandagedState( null                                  , new int[] {2, 1, 54,2, 2, 55}         , new int[] {2, 1, 52}                   ),
101
     new BandagedState( null                                  , new int[] {2, 1, 55,2,-1, 53}         , new int[] {0,-1,104}                   ),
102
     new BandagedState( null                                  , new int[] {2, 2, 53,2,-1, 54}         , new int[] {0, 2, 56,0,-1, 65}          ),
103
     new BandagedState( new int[] {2, 1, 57}                  , null                                  , new int[] {0, 1, 65,0, 2, 55}          ),
104
     new BandagedState( new int[] {2,-1, 56}                  , new int[] {2, 2, 58,2,-1, 13}         , null                                   ),
105
     new BandagedState( null                                  , new int[] {2, 1, 13,2, 2, 57}         , new int[] {2,-1, 59}                   ),
106
     new BandagedState( new int[] {2, 1, 60}                  , null                                  , new int[] {2, 1, 58}                   ),
107
     new BandagedState( new int[] {2,-1, 59}                  , null                                  , new int[] {2, 1, 61}                   ),
108
     new BandagedState( new int[] {2,-1, 62}                  , null                                  , new int[] {2,-1, 60}                   ),
109
     new BandagedState( new int[] {2, 1, 61}                  , new int[] {2,-1, 63}                  , null                                   ),
110
     new BandagedState( null                                  , new int[] {2, 1, 62}                  , new int[] {2, 1, 64}                   ),
111
     new BandagedState( null                                  , new int[] {2, 1, 39,2, 2, 40}         , new int[] {2,-1, 63}                   ),
112
     new BandagedState( new int[] {2, 1, 66,2,-1, 67}         , new int[] {2, 1, 78,2, 2, 79,2,-1, 80}, new int[] {0, 1, 55,0,-1, 56}          ),
113
     new BandagedState( new int[] {2, 2, 67,2,-1, 65}         , new int[] {2,-1,107}                  , null                                   ),
114
     new BandagedState( new int[] {2, 1, 65,2, 2, 66}         , null                                  , new int[] {0, 1, 68}                   ),
115
     new BandagedState( null                                  , new int[] {2, 1, 69}                  , new int[] {0,-1, 67}                   ),
116
     new BandagedState( null                                  , new int[] {2,-1, 68}                  , new int[] {0,-1, 70}                   ),
117
     new BandagedState( null                                  , new int[] {2,-1, 71}                  , new int[] {0, 1, 69}                   ),
118
     new BandagedState( new int[] {2,-1, 72}                  , new int[] {2, 1, 70}                  , null                                   ),
119
     new BandagedState( new int[] {2, 1, 71}                  , null                                  , new int[] {0,-1, 73}                   ),
120
     new BandagedState( new int[] {2, 1, 74,2, 2, 75}         , null                                  , new int[] {0, 1, 72}                   ),
121
     new BandagedState( new int[] {2, 1, 75,2,-1, 73}         , new int[] {2,-1, 26}                  , new int[] {0, 1, 83,0,-1,138}          ),
122
     new BandagedState( new int[] {2, 2, 73,2,-1, 74}         , new int[] {2, 1, 76,2,-1, 77}         , null                                   ),
123
     new BandagedState( null                                  , new int[] {2, 2, 77,2,-1, 75}         , new int[] {0, 1, 78}                   ),
124
     new BandagedState( null                                  , new int[] {2, 1, 75,2, 2, 76}         , new int[] {2,-1, 11}                   ),
125
     new BandagedState( null                                  , new int[] {2, 1, 79,2, 2, 80,2,-1, 65}, new int[] {0,-1, 76}                   ),
126
     new BandagedState( null                                  , new int[] {2, 1, 80,2, 2, 65,2,-1, 78}, new int[] {2,-1,110}                   ),
127
     new BandagedState( new int[] {2, 1, 81,2,-1, 82}         , new int[] {2, 1, 65,2, 2, 78,2,-1, 79}, new int[] {2, 1,  6,2,-1,  7}          ),
128
     new BandagedState( new int[] {2, 2, 82,2,-1, 80}         , null                                  , new int[] {2, 1, 44}                   ),
129
     new BandagedState( new int[] {2, 1, 80,2, 2, 81}         , new int[] {2, 1, 83,2,-1, 84}         , new int[] {0,-1, 15}                   ),
130
     new BandagedState( null                                  , new int[] {2, 2, 84,2,-1, 82}         , new int[] {0, 2,138,0,-1, 74}          ),
131
     new BandagedState( new int[] {2, 1, 85}                  , new int[] {2, 1, 82,2, 2, 83}         , null                                   ),
132
     new BandagedState( new int[] {2,-1, 84}                  , null                                  , new int[] {2, 1, 86,2, 2,119}          ),
133
     new BandagedState( new int[] {2, 1, 87,2,-1, 88}         , new int[] {2, 1, 43,2, 2,114,2,-1,113}, new int[] {2, 1,119,2,-1, 85}          ),
134
     new BandagedState( new int[] {2, 2, 88,2,-1, 86}         , null                                  , new int[] {2, 1, 94}                   ),
135
     new BandagedState( new int[] {2, 1, 86,2, 2, 87}         , new int[] {2, 1, 89}                  , null                                   ),
136
     new BandagedState( null                                  , new int[] {2,-1, 88}                  , new int[] {0, 2, 90,0,-1, 31}          ),
137
     new BandagedState( new int[] {2, 1, 91,2, 2, 92}         , null                                  , new int[] {0, 1, 31,0, 2, 89}          ),
138
     new BandagedState( new int[] {2, 1, 92,2,-1, 90}         , null                                  , new int[] {0, 1, 93}                   ),
139
     new BandagedState( new int[] {2, 2, 90,2,-1, 91}         , null                                  , new int[] {2,-1, 23}                   ),
140
     new BandagedState( null                                  , new int[] {2, 2, 37,2,-1, 38}         , new int[] {0,-1, 91}                   ),
141
     new BandagedState( null                                  , new int[] {2,-1, 95}                  , new int[] {2,-1, 87}                   ),
142
     new BandagedState( null                                  , new int[] {2, 1, 94}                  , new int[] {2,-1, 96}                   ),
143
     new BandagedState( null                                  , new int[] {2, 1, 97}                  , new int[] {2, 1, 95}                   ),
144
     new BandagedState( new int[] {2, 1, 98}                  , new int[] {2,-1, 96}                  , null                                   ),
145
     new BandagedState( new int[] {2,-1, 97}                  , null                                  , new int[] {2,-1, 99}                   ),
146
     new BandagedState( new int[] {2, 2,100,2,-1,101}         , null                                  , new int[] {2, 1, 98}                   ),
147
     new BandagedState( new int[] {2, 1,101,2, 2, 99}         , new int[] {2, 1,111,2,-1,112}         , null                                   ),
148
     new BandagedState( new int[] {2, 1, 99,2,-1,100}         , new int[] {2, 1,102}                  , new int[] {2, 1,108,2,-1,109}          ),
149
     new BandagedState( new int[] {2, 1,103,2,-1,104}         , new int[] {2,-1,101}                  , null                                   ),
150
     new BandagedState( new int[] {2, 2,104,2,-1,102}         , null                                  , new int[] {2,-1,105}                   ),
151
     new BandagedState( new int[] {2, 1,102,2, 2,103}         , null                                  , new int[] {0, 1, 54}                   ),
152
     new BandagedState( new int[] {2,-1,106}                  , null                                  , new int[] {2, 1,103}                   ),
153
     new BandagedState( new int[] {2, 1,105}                  , null                                  , new int[] {2, 1,107}                   ),
154
     new BandagedState( null                                  , new int[] {2, 1, 66}                  , new int[] {2,-1,106}                   ),
155
     new BandagedState( null                                  , new int[] {2, 1, 44,2, 2, 48}         , new int[] {2, 2,109,2,-1,101}          ),
156
     new BandagedState( new int[] {2,-1,110}                  , null                                  , new int[] {2, 1,101,2, 2,108}          ),
157
     new BandagedState( new int[] {2, 1,109}                  , null                                  , new int[] {2, 1, 79}                   ),
158
     new BandagedState( null                                  , new int[] {2, 2,112,2,-1,100}         , new int[] {0, 2,115,0,-1, 16}          ),
159
     new BandagedState( null                                  , new int[] {2, 1,100,2, 2,111}         , new int[] {2, 1,113}                   ),
160
     new BandagedState( null                                  , new int[] {2, 1, 86,2, 2, 43,2,-1,114}, new int[] {2,-1,112}                   ),
161
     new BandagedState( null                                  , new int[] {2, 1,113,2, 2, 86,2,-1, 43}, null                                   ),
162
     new BandagedState( new int[] {2, 2,116}                  , null                                  , new int[] {0, 1, 16,0, 2,111}          ),
163
     new BandagedState( new int[] {2, 2,115}                  , null                                  , new int[] {2,-1,117}                   ),
164
     new BandagedState( new int[] {2, 1,118}                  , null                                  , new int[] {2, 1,116}                   ),
165
     new BandagedState( new int[] {2,-1,117}                  , null                                  , new int[] {0, 1, 10}                   ),
166
     new BandagedState( null                                  , new int[] {2, 1,120,2, 2,121,2,-1,122}, new int[] {2, 2, 85,2,-1, 86}          ),
167
     new BandagedState( null                                  , new int[] {2, 1,121,2, 2,122,2,-1,119}, new int[] {2,-1,129}                   ),
168
     new BandagedState( null                                  , new int[] {2, 1,122,2, 2,119,2,-1,120}, new int[] {0, 1,125}                   ),
169
     new BandagedState( null                                  , new int[] {2, 1,119,2, 2,120,2,-1,121}, new int[] {0,-1,123}                   ),
170
     new BandagedState( null                                  , new int[] {2, 2,124}                  , new int[] {0, 1,122}                   ),
171
     new BandagedState( null                                  , new int[] {2, 2,123}                  , new int[] {2, 2, 27,2,-1, 28}          ),
172
     new BandagedState( null                                  , new int[] {2, 1,126}                  , new int[] {0,-1,121}                   ),
173
     new BandagedState( null                                  , new int[] {2,-1,125}                  , new int[] {2,-1,127}                   ),
174
     new BandagedState( null                                  , new int[] {2, 2,128}                  , new int[] {2, 1,126}                   ),
175
     new BandagedState( null                                  , new int[] {2, 2,127}                  , new int[] {0, 2, 42,0,-1, 43}          ),
176
     new BandagedState( new int[] {2, 2,130,2,-1,131}         , null                                  , new int[] {2, 1,120}                   ),
177
     new BandagedState( new int[] {2, 1,131,2, 2,129}         , null                                  , new int[] {0,-1, 30}                   ),
178
     new BandagedState( new int[] {2, 1,129,2,-1,130}         , new int[] {2, 1,  3,2, 2,132}         , null                                   ),
179
     new BandagedState( null                                  , new int[] {2, 2,131,2,-1,  3}         , new int[] {0,-1,133}                   ),
180
     new BandagedState( null                                  , new int[] {2,-1,134}                  , new int[] {0, 1,132}                   ),
181
     new BandagedState( new int[] {2,-1,135}                  , new int[] {2, 1,133}                  , null                                   ),
182
     new BandagedState( new int[] {2, 1,134}                  , null                                  , new int[] {0,-1,136}                   ),
183
     new BandagedState( new int[] {2, 1,137}                  , null                                  , new int[] {0, 1,135}                   ),
184
     new BandagedState( new int[] {2,-1,136}                  , null                                  , new int[] {0, 1, 32}                   ),
185
     new BandagedState( new int[] {2, 1,139}                  , null                                  , new int[] {0, 1, 74,0, 2, 83}          ),
186
     new BandagedState( new int[] {2,-1,138}                  , null                                  , new int[] {0, 1, 17}                   ),
187
     new BandagedState( null                                  , new int[] {2, 1,141}                  , new int[] {2, 2, 19,2,-1, 39}          ),
188
     new BandagedState( null                                  , new int[] {2,-1,140}                  , new int[] {2,-1, 29}                   ),
189
     new BandagedState( null                                  , new int[] {2, 1, 28}                  , new int[] {2,-1, 18}                   ),
190
     new BandagedState( null                                  , new int[] {2, 1,  1}                  , new int[] {2, 2, 12,2,-1, 13}          )
191
     };
192

    
193
///////////////////////////////////////////////////////////////////////////////////////////////////
194

    
195
  private static final float[][] POSITIONS = new float[][]
196
      {
197
        { 1.0f,  1.0f, -1.0f},
198
        {-1.0f, -1.0f,  0.0f, -1.0f,  0.0f,  0.0f, 0.0f, -1.0f,  0.0f,  0.0f,  0.0f,  0.0f},
199
        {-1.0f,  1.0f, -1.0f,  0.0f,  1.0f, -1.0f},
200
        {-1.0f,  0.0f, -1.0f,  0.0f,  0.0f, -1.0f},
201
        {-1.0f, -1.0f, -1.0f,  0.0f, -1.0f, -1.0f},
202
        {-1.0f,  1.0f,  0.0f, -1.0f,  1.0f,  1.0f},
203
        { 0.0f,  1.0f,  0.0f,  0.0f,  1.0f,  1.0f},
204
        { 1.0f,  1.0f,  0.0f,  1.0f,  1.0f,  1.0f},
205
        {-1.0f, -1.0f,  1.0f, -1.0f,  0.0f,  1.0f},
206
        { 0.0f, -1.0f,  1.0f,  0.0f,  0.0f,  1.0f},
207
        { 1.0f, -1.0f,  1.0f,  1.0f,  0.0f,  1.0f},
208
        { 1.0f, -1.0f,  0.0f,  1.0f,  0.0f,  0.0f},
209
        { 1.0f, -1.0f, -1.0f,  1.0f,  0.0f, -1.0f}
210
      };
211

    
212
  private static final int[] QUAT_INDICES = new int[]
213
      { 0, 1, 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, 3 };
214

    
215
///////////////////////////////////////////////////////////////////////////////////////////////////
216

    
217
  TwistyBandagedEvil(int size, Static4D quat, DistortedTexture texture, MeshSquare mesh,
218
                     DistortedEffects effects, int[][] moves, Resources res, int scrWidth)
219
    {
220
    super(size, quat, texture, mesh, effects, moves, ObjectList.BAN4, res, scrWidth);
221
    }
222

    
223
///////////////////////////////////////////////////////////////////////////////////////////////////
224

    
225
  float[][] getPositions()
226
    {
227
    return POSITIONS;
228
    }
229

    
230
///////////////////////////////////////////////////////////////////////////////////////////////////
231

    
232
  int[] getQuatIndices()
233
    {
234
    return QUAT_INDICES;
235
    }
236

    
237
///////////////////////////////////////////////////////////////////////////////////////////////////
238
// PUBLIC API
239

    
240
  public void randomizeNewScramble(int[][] scramble, Random rnd, int num)
241
    {
242
    if( num==0 )
243
      {
244
      mCurrState = 0;
245
      mUseX = true;
246
      mUseY = true;
247
      mUseZ = true;
248
      }
249

    
250
    int total = mStates[mCurrState].getTotal(mUseX,mUseY,mUseZ);
251
    int random= rnd.nextInt(total);
252
    int[] info= mStates[mCurrState].getInfo(random,mUseX,mUseY,mUseZ);
253

    
254
    scramble[num][0] = info[0];
255
    scramble[num][1] = info[1];
256
    scramble[num][2] = info[2];
257

    
258
    mCurrState = info[3];
259

    
260
    switch(info[0])
261
      {
262
      case 0: mUseX = false; mUseY = true ; mUseZ = true ; break;
263
      case 1: mUseX = true ; mUseY = false; mUseZ = true ; break;
264
      case 2: mUseX = true ; mUseY = true ; mUseZ = false; break;
265
      }
266

    
267
    //android.util.Log.e("D", (info[0]==0 ? "X" : (info[0]==1 ? "Y" : "Z")) + info[2] +" --> "+info[3]);
268
    }
269

    
270
///////////////////////////////////////////////////////////////////////////////////////////////////
271

    
272
  public int getObjectName(int numLayers)
273
    {
274
    return R.string.bandaged_evil;
275
    }
276

    
277
///////////////////////////////////////////////////////////////////////////////////////////////////
278

    
279
  public int getInventor(int numLayers)
280
    {
281
    return R.string.bandaged_evil_inventor;
282
    }
283

    
284
///////////////////////////////////////////////////////////////////////////////////////////////////
285

    
286
  public int getComplexity(int numLayers)
287
    {
288
    return 8;
289
    }
290
}
(19-19/35)