Revision f702f4ef
Added by Leszek Koltunski almost 2 years ago
src/main/java/org/distorted/solvers/SolverMain.java | ||
---|---|---|
26 | 26 |
private final Resources mRes; |
27 | 27 |
private final TwistyObject mObject; |
28 | 28 |
private final long mSignature; |
29 |
private int mColorID; |
|
29 | 30 |
|
30 | 31 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
31 | 32 |
|
... | ... | |
66 | 67 |
|
67 | 68 |
SolverSearch.prepare(mRes); |
68 | 69 |
String objectPosition = prepareCube3position(); |
69 |
result = SolverSearch.solution(objectPosition, 24, 20);
|
|
70 |
int check = checkPosition(objectPosition);
|
|
70 | 71 |
|
71 |
if (result.contains("Error"))
|
|
72 |
if( check<0 )
|
|
72 | 73 |
{ |
73 |
switch (result.charAt(result.length() - 1)) |
|
74 |
result = SolverSearch.solution(objectPosition, 24, 20); |
|
75 |
|
|
76 |
if (result.contains("Error")) |
|
74 | 77 |
{ |
75 |
case '1': result = mRes.getString(R.string.solver_cube3_error1); break; |
|
76 |
case '2': result = mRes.getString(R.string.solver_cube3_error2); break; |
|
77 |
case '3': result = mRes.getString(R.string.solver_cube3_error3); break; |
|
78 |
case '4': result = mRes.getString(R.string.solver_cube3_error4); break; |
|
79 |
case '5': result = mRes.getString(R.string.solver_cube3_error5); break; |
|
80 |
case '6': result = mRes.getString(R.string.solver_cube3_error6); break; |
|
81 |
case '7': result = mRes.getString(R.string.solver_cube3_error7); break; |
|
82 |
case '8': result = mRes.getString(R.string.solver_cube3_error8); break; |
|
83 |
case '9': result = mRes.getString(R.string.solver_cube3_error9); break; |
|
78 |
switch (result.charAt(result.length() - 1)) |
|
79 |
{ |
|
80 |
case '1': result = mRes.getString(R.string.solver_cube3_error1); break; |
|
81 |
case '2': result = mRes.getString(R.string.solver_cube3_error2); break; |
|
82 |
case '3': result = mRes.getString(R.string.solver_cube3_error3); break; |
|
83 |
case '4': result = mRes.getString(R.string.solver_cube3_error4); break; |
|
84 |
case '5': result = mRes.getString(R.string.solver_cube3_error5); break; |
|
85 |
case '6': result = mRes.getString(R.string.solver_cube3_error6); break; |
|
86 |
case '7': result = mRes.getString(R.string.solver_cube3_error7); break; |
|
87 |
case '8': result = mRes.getString(R.string.solver_cube3_error8); break; |
|
88 |
case '9': result = mRes.getString(R.string.solver_cube3_error9); break; |
|
89 |
} |
|
90 |
|
|
91 |
solver.displayErrorDialog(result); |
|
92 |
} |
|
93 |
else |
|
94 |
{ |
|
95 |
solver.setSolved(result); |
|
84 | 96 |
} |
85 |
|
|
86 |
solver.displayErrorDialog(result); |
|
87 | 97 |
} |
88 | 98 |
else |
89 | 99 |
{ |
90 |
solver.setSolved(result); |
|
100 |
String color = mRes.getString(mColorID); |
|
101 |
result = mRes.getString(R.string.solver_cube3_error1,check,color); |
|
102 |
solver.displayErrorDialog(result); |
|
91 | 103 |
} |
92 | 104 |
} |
93 | 105 |
|
... | ... | |
128 | 140 |
return -1; |
129 | 141 |
} |
130 | 142 |
|
143 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
144 |
|
|
145 |
private int checkPosition(String position) |
|
146 |
{ |
|
147 |
int[] numColors = new int[6]; |
|
148 |
int len = position.length(); |
|
149 |
|
|
150 |
for(int i=0; i<len; i++) |
|
151 |
{ |
|
152 |
char ch = position.charAt(i); |
|
153 |
|
|
154 |
switch(ch) |
|
155 |
{ |
|
156 |
case 'R': numColors[0]++; break; |
|
157 |
case 'L': numColors[1]++; break; |
|
158 |
case 'U': numColors[2]++; break; |
|
159 |
case 'D': numColors[3]++; break; |
|
160 |
case 'F': numColors[4]++; break; |
|
161 |
case 'B': numColors[5]++; break; |
|
162 |
} |
|
163 |
} |
|
164 |
|
|
165 |
if( numColors[0]<9 ) { mColorID = R.string.color_yellow; return numColors[0]; } |
|
166 |
if( numColors[1]<9 ) { mColorID = R.string.color_white ; return numColors[1]; } |
|
167 |
if( numColors[2]<9 ) { mColorID = R.string.color_blue ; return numColors[2]; } |
|
168 |
if( numColors[3]<9 ) { mColorID = R.string.color_green ; return numColors[3]; } |
|
169 |
if( numColors[4]<9 ) { mColorID = R.string.color_red ; return numColors[4]; } |
|
170 |
if( numColors[5]<9 ) { mColorID = R.string.color_orange; return numColors[5]; } |
|
171 |
|
|
172 |
return -1; |
|
173 |
} |
|
174 |
|
|
131 | 175 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
132 | 176 |
// order: Up --> Right --> Front --> Down --> Left --> Back |
133 | 177 |
// (because the first implemented Solver - the two-phase Cube3 one - expects such order) |
Also available in: Unified diff
Make error reporting in the Solver a bit better.