Revision f702f4ef
Added by Leszek Koltunski over 3 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) |
| src/main/res/values-de/strings.xml | ||
|---|---|---|
| 70 | 70 |
|
| 71 | 71 |
<string name="solver_generic_error1">Löser für dieses Objekt und diese Größe noch nicht implementiert!</string> |
| 72 | 72 |
|
| 73 |
<string name="solver_cube3_error1">Es gibt nicht genau 9 Facelets jeder Farbe!</string>
|
|
| 73 |
<string name="solver_cube3_error1">Es gibt nur %1$d %2$s Facelets.</string>
|
|
| 74 | 74 |
<string name="solver_cube3_error2">Nicht alle 12 Kanten gibt es genau einmal!</string> |
| 75 | 75 |
<string name="solver_cube3_error3">Eine Kante muss umgedreht werden!</string> |
| 76 | 76 |
<string name="solver_cube3_error4">Nicht alle 8 Ecken gibt es genau einmal!</string> |
| ... | ... | |
| 80 | 80 |
<string name="solver_cube3_error8">Zeitüberschreitung. Keine Lösung in 20 Sekunden gefunden!</string> |
| 81 | 81 |
<string name="solver_cube3_error9">Löser unterbrochen!</string> |
| 82 | 82 |
|
| 83 |
<string name="color_yellow">gelbe</string> |
|
| 84 |
<string name="color_white">weiße</string> |
|
| 85 |
<string name="color_blue">blaue</string> |
|
| 86 |
<string name="color_green">grüne</string> |
|
| 87 |
<string name="color_red">rote</string> |
|
| 88 |
<string name="color_orange">orange</string> |
|
| 89 |
|
|
| 83 | 90 |
<string name="ms_placeholder">%1$d ms</string> |
| 84 | 91 |
<string name="lv_placeholder">Level %1$d</string> |
| 85 | 92 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
| src/main/res/values-es/strings.xml | ||
|---|---|---|
| 70 | 70 |
|
| 71 | 71 |
<string name="solver_generic_error1">¡Aún no se implementado el solucionador para este objeto y tamaño!</string> |
| 72 | 72 |
|
| 73 |
<string name="solver_cube3_error1">¡No hay exactamente 9 facelets de cada color!</string>
|
|
| 73 |
<string name="solver_cube3_error1">Solo hay %1$d facetas %2$s.</string>
|
|
| 74 | 74 |
<string name="solver_cube3_error2">¡No todos los 12 bordes existen exactamente una vez!</string> |
| 75 | 75 |
<string name="solver_cube3_error3">¡Un borde tiene que voltearse!</string> |
| 76 | 76 |
<string name="solver_cube3_error4">¡No todas las 8 esquinas existen exactamente una vez!</string> |
| ... | ... | |
| 80 | 80 |
<string name="solver_cube3_error8">¡Tiempo de espera agotado, no se encontró ninguna solución en 20 segundos!</string> |
| 81 | 81 |
<string name="solver_cube3_error9">¡Solucionador interrumpido!</string> |
| 82 | 82 |
|
| 83 |
<string name="color_yellow">amarillas</string> |
|
| 84 |
<string name="color_white">blancos</string> |
|
| 85 |
<string name="color_blue">azules</string> |
|
| 86 |
<string name="color_green">verdes</string> |
|
| 87 |
<string name="color_red">rojos</string> |
|
| 88 |
<string name="color_orange">naranjas</string> |
|
| 89 |
|
|
| 83 | 90 |
<string name="ms_placeholder">%1$d ms</string> |
| 84 | 91 |
<string name="lv_placeholder">Nivel %1$d</string> |
| 85 | 92 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
| src/main/res/values-fr/strings.xml | ||
|---|---|---|
| 70 | 70 |
|
| 71 | 71 |
<string name="solver_generic_error1">Solutionneur pour cet objet et cette taille non encore mis en place !</string> |
| 72 | 72 |
|
| 73 |
<string name="solver_cube3_error1">Il n\'y a pas exactement 9 facettes de chaque couleur !</string>
|
|
| 73 |
<string name="solver_cube3_error1">Il n\'y a que %1$d facettes %2$s.</string>
|
|
| 74 | 74 |
<string name="solver_cube3_error2">Les 12 arêtes n\'existent pas exactement une fois !</string> |
| 75 | 75 |
<string name="solver_cube3_error3">Une arête doit être inversée !</string> |
| 76 | 76 |
<string name="solver_cube3_error4">Les 8 coins n\'existent pas tous une seule fois !</string> |
| ... | ... | |
| 80 | 80 |
<string name="solver_cube3_error8">Temps imparti, aucune solution trouvée en 20 secondes !</string> |
| 81 | 81 |
<string name="solver_cube3_error9">Solutionneur interrompu !</string> |
| 82 | 82 |
|
| 83 |
<string name="color_yellow">jaunes</string> |
|
| 84 |
<string name="color_white">blanches</string> |
|
| 85 |
<string name="color_blue">bleues</string> |
|
| 86 |
<string name="color_green">vertes</string> |
|
| 87 |
<string name="color_red">rouges</string> |
|
| 88 |
<string name="color_orange">orange</string> |
|
| 89 |
|
|
| 83 | 90 |
<string name="ms_placeholder">%1$d ms</string> |
| 84 | 91 |
<string name="lv_placeholder">Niveau %1$d</string> |
| 85 | 92 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
| src/main/res/values-ja/strings.xml | ||
|---|---|---|
| 70 | 70 |
|
| 71 | 71 |
<string name="solver_generic_error1">このオブジェクトとサイズのソルバーはまだ実装されていません!</string> |
| 72 | 72 |
|
| 73 |
<string name="solver_cube3_error1">各色には 9 つのフェイスレットはありません。</string>
|
|
| 73 |
<string name="solver_cube3_error1">%2$s小顔は%1$dつだけ</string>
|
|
| 74 | 74 |
<string name="solver_cube3_error2">12 のエッジすべてが 存在するわけではありません。</string> |
| 75 | 75 |
<string name="solver_cube3_error3">1 つのエッジを反転する必要があります!</string> |
| 76 | 76 |
<string name="solver_cube3_error4">8 つのコーナーすべてが存在するわけではありません!</string> |
| ... | ... | |
| 80 | 80 |
<string name="solver_cube3_error8">タイムアウトです。20 秒では解答は見つかりません!</string> |
| 81 | 81 |
<string name="solver_cube3_error9">ソルバーが中断されました!</string> |
| 82 | 82 |
|
| 83 |
<string name="color_yellow">黄色い</string> |
|
| 84 |
<string name="color_white">白い</string> |
|
| 85 |
<string name="color_blue">青い</string> |
|
| 86 |
<string name="color_green">緑の</string> |
|
| 87 |
<string name="color_red">赤い</string> |
|
| 88 |
<string name="color_orange">オレンジ色の</string> |
|
| 89 |
|
|
| 83 | 90 |
<string name="ms_placeholder">%1$d ms</string> |
| 84 | 91 |
<string name="lv_placeholder">レベル %1$d</string> |
| 85 | 92 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
| src/main/res/values-ko/strings.xml | ||
|---|---|---|
| 70 | 70 |
|
| 71 | 71 |
<string name="solver_generic_error1">아직 구현되지 않은 이 개체 및 크기에 대한 해결사!</string> |
| 72 | 72 |
|
| 73 |
<string name="solver_cube3_error1">각 색상마다 정확히 9개의 페이스렛이 없습니다!</string>
|
|
| 73 |
<string name="solver_cube3_error1">%2$s작은 얼굴은 %1$d개뿐입니다.</string>
|
|
| 74 | 74 |
<string name="solver_cube3_error2">12개의 가장자리 모두가 정확하게 한 번 존재하지 않습니다!</string> |
| 75 | 75 |
<string name="solver_cube3_error3">한쪽 가장자리를 뒤집어야 합니다!</string> |
| 76 | 76 |
<string name="solver_cube3_error4">8개의 모서리 모두가 정확하게 한 번 존재하지 않습니다!</string> |
| ... | ... | |
| 80 | 80 |
<string name="solver_cube3_error8">시간 초과, 20초 안에 해답이 발견되지 않았습니다!</string> |
| 81 | 81 |
<string name="solver_cube3_error9">해결사가 중단되었습니다!</string> |
| 82 | 82 |
|
| 83 |
<string name="color_yellow">노란색</string> |
|
| 84 |
<string name="color_white">하얀</string> |
|
| 85 |
<string name="color_blue">파란색</string> |
|
| 86 |
<string name="color_green">녹색의</string> |
|
| 87 |
<string name="color_red">빨간</string> |
|
| 88 |
<string name="color_orange">주황색</string> |
|
| 89 |
|
|
| 83 | 90 |
<string name="ms_placeholder">%1$d ms</string> |
| 84 | 91 |
<string name="lv_placeholder">레벨 %1$d</string> |
| 85 | 92 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
| src/main/res/values-pl/strings.xml | ||
|---|---|---|
| 70 | 70 |
|
| 71 | 71 |
<string name="solver_generic_error1">Rozwiązywacz takiego obiektu jest jeszcze nie zaimplementowany!</string> |
| 72 | 72 |
|
| 73 |
<string name="solver_cube3_error1">Nie ma dokładnie 9 ścian w każdym kolorze!</string>
|
|
| 73 |
<string name="solver_cube3_error1">Jest tylko %1$d %2$s ścian.</string>
|
|
| 74 | 74 |
<string name="solver_cube3_error2">Któraś z 12 krawędzi nie istnieje!</string> |
| 75 | 75 |
<string name="solver_cube3_error3">Jedna z krawędzi musi być odwrócona!</string> |
| 76 | 76 |
<string name="solver_cube3_error4">Jeden z 8 rogów nie istnieje!</string> |
| ... | ... | |
| 80 | 80 |
<string name="solver_cube3_error8">Minęło 20 sekund i rozwiązanie nie zostało znalezione!</string> |
| 81 | 81 |
<string name="solver_cube3_error9">Rozwiązywacz przerwany!</string> |
| 82 | 82 |
|
| 83 |
<string name="color_yellow">żółtych</string> |
|
| 84 |
<string name="color_white">białych</string> |
|
| 85 |
<string name="color_blue">niebieskich</string> |
|
| 86 |
<string name="color_green">zielonych</string> |
|
| 87 |
<string name="color_red">czerwonych</string> |
|
| 88 |
<string name="color_orange">pomarańczowych</string> |
|
| 89 |
|
|
| 83 | 90 |
<string name="ms_placeholder">%1$d ms</string> |
| 84 | 91 |
<string name="lv_placeholder">Poziom %1$d</string> |
| 85 | 92 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
| src/main/res/values-ru/strings.xml | ||
|---|---|---|
| 70 | 70 |
|
| 71 | 71 |
<string name="solver_generic_error1">Решебника для этого объекта и размера еще нет!</string> |
| 72 | 72 |
|
| 73 |
<string name="solver_cube3_error1">Отсутствует точно 9 граней каждого цвета!</string>
|
|
| 73 |
<string name="solver_cube3_error1">Всего %1$d %2$s граней!</string>
|
|
| 74 | 74 |
<string name="solver_cube3_error2">Не все 12 ребер существуют в единичном экземпляре!</string> |
| 75 | 75 |
<string name="solver_cube3_error3">Надо перевернуть одно ребро!</string> |
| 76 | 76 |
<string name="solver_cube3_error4">Не все 8 углов существуют в единичном экземпляре!</string> |
| ... | ... | |
| 79 | 79 |
<string name="solver_cube3_error7">Не существует решения для данного максимального числа ходов!</string> |
| 80 | 80 |
<string name="solver_cube3_error8">Время вышло: решение не найдено в течение 20 секунд!</string> |
| 81 | 81 |
<string name="solver_cube3_error9">Решебник прерван!</string> |
| 82 |
] |
|
| 83 |
<string name="color_yellow">желтых</string> |
|
| 84 |
<string name="color_white">белых</string> |
|
| 85 |
<string name="color_blue">синих</string> |
|
| 86 |
<string name="color_green">зеленых</string> |
|
| 87 |
<string name="color_red">красных</string> |
|
| 88 |
<string name="color_orange">оранжевых</string> |
|
| 82 | 89 |
|
| 83 | 90 |
<string name="ms_placeholder">%1$d мс</string> |
| 84 | 91 |
<string name="lv_placeholder">Уровень %1$d</string> |
| src/main/res/values-zh-rCN/strings.xml | ||
|---|---|---|
| 76 | 76 |
|
| 77 | 77 |
<string name="solver_generic_error1">此对象和尺寸的求解器尚未实现!</string> |
| 78 | 78 |
|
| 79 |
<string name="solver_cube3_error1">每种颜色并非全有9个小面!</string>
|
|
| 79 |
<string name="solver_cube3_error1">只有%1$d个%2$s小面</string>
|
|
| 80 | 80 |
<string name="solver_cube3_error2">并非所有12条边都只存在一次!</string> |
| 81 | 81 |
<string name="solver_cube3_error3">一条边需要翻转!</string> |
| 82 | 82 |
<string name="solver_cube3_error4">并非所有8个角都只存在一次!</string> |
| ... | ... | |
| 86 | 86 |
<string name="solver_cube3_error8">超时,20秒内未找到解决方案!</string> |
| 87 | 87 |
<string name="solver_cube3_error9">求解器中断!</string> |
| 88 | 88 |
|
| 89 |
<string name="color_yellow">黄色的</string> |
|
| 90 |
<string name="color_white">白色的</string> |
|
| 91 |
<string name="color_blue">蓝色的</string> |
|
| 92 |
<string name="color_green">绿色的</string> |
|
| 93 |
<string name="color_red">红色的</string> |
|
| 94 |
<string name="color_orange">橙色的</string> |
|
| 95 |
|
|
| 89 | 96 |
<string name="ms_placeholder">%1$d 毫秒</string> |
| 90 | 97 |
<string name="lv_placeholder">级别 %1$d</string> |
| 91 | 98 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
| src/main/res/values-zh-rTW/strings.xml | ||
|---|---|---|
| 70 | 70 |
|
| 71 | 71 |
<string name="solver_generic_error1">此對象和尺寸的求解器尚未實現!</string> |
| 72 | 72 |
|
| 73 |
<string name="solver_cube3_error1">每種颜色並非全有9個小面!</string>
|
|
| 73 |
<string name="solver_cube3_error1">只有%1$d個%2$s小臉</string>
|
|
| 74 | 74 |
<string name="solver_cube3_error2">並非所有12條邊都只存在一次!</string> |
| 75 | 75 |
<string name="solver_cube3_error3">一條邊需要翻轉!</string> |
| 76 | 76 |
<string name="solver_cube3_error4">並非所有8個角都只存在一次!</string> |
| ... | ... | |
| 80 | 80 |
<string name="solver_cube3_error8">超時,20秒内未找到解决方案!</string> |
| 81 | 81 |
<string name="solver_cube3_error9">求解器中斷!</string> |
| 82 | 82 |
|
| 83 |
<string name="color_yellow">黃色的</string> |
|
| 84 |
<string name="color_white">白色的</string> |
|
| 85 |
<string name="color_blue">藍色的</string> |
|
| 86 |
<string name="color_green">綠色的</string> |
|
| 87 |
<string name="color_red">紅色的</string> |
|
| 88 |
<string name="color_orange">橙色的</string> |
|
| 89 |
|
|
| 83 | 90 |
<string name="ms_placeholder">%1$d 毫秒</string> |
| 84 | 91 |
<string name="lv_placeholder">級別 %1$d</string> |
| 85 | 92 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
| src/main/res/values/strings.xml | ||
|---|---|---|
| 90 | 90 |
<string name="opengl_error_text" translatable="false">This device does not support OpenGL 3.0</string> |
| 91 | 91 |
|
| 92 | 92 |
<string name="solver_generic_error1">Solver for this object and size not implemented yet!</string> |
| 93 |
<string name="solver_cube3_error1">There are not exactly 9 facelets of each color!</string>
|
|
| 93 |
<string name="solver_cube3_error1">There are only %1$d %2$s facelets.</string>
|
|
| 94 | 94 |
<string name="solver_cube3_error2">Not all 12 edges exist exactly once!</string> |
| 95 | 95 |
<string name="solver_cube3_error3">One edge has to be flipped!</string> |
| 96 | 96 |
<string name="solver_cube3_error4">Not all 8 corners exist exactly once!</string> |
| ... | ... | |
| 100 | 100 |
<string name="solver_cube3_error8">Timeout, no solution found in 20 seconds!</string> |
| 101 | 101 |
<string name="solver_cube3_error9">Solver interrupted!</string> |
| 102 | 102 |
|
| 103 |
<string name="color_yellow">yellow</string> |
|
| 104 |
<string name="color_white">white</string> |
|
| 105 |
<string name="color_blue">blue</string> |
|
| 106 |
<string name="color_green">green</string> |
|
| 107 |
<string name="color_red">red</string> |
|
| 108 |
<string name="color_orange">orange</string> |
|
| 109 |
|
|
| 103 | 110 |
<string name="ms_placeholder">%1$d ms</string> |
| 104 | 111 |
<string name="lv_placeholder">Level %1$d</string> |
| 105 | 112 |
<string name="tm_placeholder">%1$02d:%2$02d</string> |
Also available in: Unified diff
Make error reporting in the Solver a bit better.