Project

General

Profile

« Previous | Next » 

Revision ca278d11

Added by Leszek Koltunski over 1 year ago

Progress with the Pyraminx Duo solver

View differences:

src/main/java/org/distorted/solvers/SolverCube3.java
83 83
        }
84 84
      }
85 85

  
86
    if( numColors[0]<9 ) { mColorID = R.string.color_yellow; return numColors[0]; }
87
    if( numColors[1]<9 ) { mColorID = R.string.color_white ; return numColors[1]; }
88
    if( numColors[2]<9 ) { mColorID = R.string.color_blue  ; return numColors[2]; }
89
    if( numColors[3]<9 ) { mColorID = R.string.color_green ; return numColors[3]; }
90
    if( numColors[4]<9 ) { mColorID = R.string.color_red   ; return numColors[4]; }
91
    if( numColors[5]<9 ) { mColorID = R.string.color_orange; return numColors[5]; }
86
    if( numColors[0]<9 ) { mColorID = R.string.color_yellow1; return numColors[0]; }
87
    if( numColors[1]<9 ) { mColorID = R.string.color_white1 ; return numColors[1]; }
88
    if( numColors[2]<9 ) { mColorID = R.string.color_blue1  ; return numColors[2]; }
89
    if( numColors[3]<9 ) { mColorID = R.string.color_green1 ; return numColors[3]; }
90
    if( numColors[4]<9 ) { mColorID = R.string.color_red1   ; return numColors[4]; }
91
    if( numColors[5]<9 ) { mColorID = R.string.color_orange1; return numColors[5]; }
92 92

  
93 93
    return -1;
94 94
    }
......
192 192
          case '2': result = mRes.getString(R.string.solver_cube3_error2); break;
193 193
          case '3': result = mRes.getString(R.string.solver_cube3_error3); break;
194 194
          case '4': result = mRes.getString(R.string.solver_cube3_error4); break;
195
          case '5': result = mRes.getString(R.string.solver_cube3_error5); break;
195
          case '5': result = mRes.getString(R.string.solver_generic_corner_twist); break;
196 196
          case '6': result = mRes.getString(R.string.solver_cube3_error6); break;
197 197
          case '7': result = mRes.getString(R.string.solver_cube3_error7); break;
198 198
          case '8': result = mRes.getString(R.string.solver_cube3_error8); break;
src/main/java/org/distorted/solvers/SolverMain.java
84 84
      }
85 85
    else
86 86
      {
87
      screen.displayErrorDialog(mRes.getString(R.string.solver_generic_error1));
87
      screen.displayErrorDialog(mRes.getString(R.string.solver_generic_not_implemented));
88 88
      }
89 89
    }
90 90
}  
src/main/java/org/distorted/solvers/SolverTablebase.java
23 23

  
24 24
///////////////////////////////////////////////////////////////////////////////////////////////////
25 25

  
26
  public abstract String constructError(Resources res);
27
  public abstract int[] prepareQuats(TwistyObject object);
28
  public abstract String solution(int[] quats, Resources res);
26
  public abstract int tablebaseIndex(TwistyObject object);
27
  public abstract String error(int index, Resources res);
28
  public abstract String solution(int index, Resources res);
29 29

  
30 30
///////////////////////////////////////////////////////////////////////////////////////////////////
31 31
// PUBLIC API
......
43 43
    {
44 44
    String result;
45 45

  
46
    int[] quats = prepareQuats(mObject);
46
    int index = tablebaseIndex(mObject);
47 47

  
48
    if( quats!=null )
48
    if( index>=0 )
49 49
      {
50
      result = solution(quats,mRes);
50
      result = solution(index,mRes);
51 51
      solver.setSolved(result);
52 52
      }
53 53
    else
54 54
      {
55
      String error = constructError(mRes);
55
      String error = error(index,mRes);
56 56
      solver.displayErrorDialog(error);
57 57
      }
58 58
    }
src/main/java/org/distorted/solvers/pduo/SolverPyraminxDuo.java
11 11

  
12 12
import android.content.res.Resources;
13 13

  
14
import org.distorted.main.R;
14 15
import org.distorted.objectlib.main.TwistyObject;
15 16
import org.distorted.solvers.SolverTablebase;
16 17

  
......
18 19

  
19 20
public class SolverPyraminxDuo extends SolverTablebase
20 21
{
21
  private static final int ERROR_CORNER_GYB_MISSING = 0;
22
  private static final int ERROR_CORNER_GYR_MISSING = 1;
23
  private static final int ERROR_CORNER_GBR_MISSING = 2;
24
  private static final int ERROR_CORNER_YBR_MISSING = 3;
22
  private static final int ERROR_CORNER_GYB_MISSING = -1;
23
  private static final int ERROR_CORNER_GYR_MISSING = -2;
24
  private static final int ERROR_CORNER_GBR_MISSING = -3;
25
  private static final int ERROR_CORNER_YBR_MISSING = -4;
25 26

  
26
  private static final int ERROR_CENTER_G_MISSING = 4;
27
  private static final int ERROR_CENTER_Y_MISSING = 5;
28
  private static final int ERROR_CENTER_B_MISSING = 6;
29
  private static final int ERROR_CENTER_R_MISSING = 7;
27
  private static final int ERROR_CENTER_G_MISSING = -5;
28
  private static final int ERROR_CENTER_Y_MISSING = -6;
29
  private static final int ERROR_CENTER_B_MISSING = -7;
30
  private static final int ERROR_CENTER_R_MISSING = -8;
30 31

  
31
  private int mErrorID;
32
  private static final int ERROR_TWO_CENTERS_SWAP = -9;
33
  private static final int ERROR_CORNER_TWISTED   = -10;
34

  
35
///////////////////////////////////////////////////////////////////////////////////////////////////
36

  
37
  private boolean cornerEqual(int[] corner, int c1, int c2, int c3)
38
    {
39
    return ( (corner[0]==c1 && corner[1]==c2 && corner[2]==c3) ||
40
             (corner[0]==c1 && corner[2]==c2 && corner[1]==c3) ||
41
             (corner[1]==c1 && corner[0]==c2 && corner[2]==c3) ||
42
             (corner[1]==c1 && corner[2]==c2 && corner[0]==c3) ||
43
             (corner[2]==c1 && corner[1]==c2 && corner[0]==c3) ||
44
             (corner[2]==c1 && corner[0]==c2 && corner[1]==c3)  );
45
    }
46

  
47
///////////////////////////////////////////////////////////////////////////////////////////////////
48

  
49
  private int checkAllCornersPresent(int[][] corners)
50
    {
51
    boolean ybr = false;
52
    boolean gbr = false;
53
    boolean gyr = false;
54
    boolean gyb = false;
55

  
56
    for(int i=0; i<4; i++)
57
      {
58
      if( cornerEqual(corners[i],0,1,2) ) gyb = true;
59
      if( cornerEqual(corners[i],0,1,3) ) gyr = true;
60
      if( cornerEqual(corners[i],0,2,3) ) gbr = true;
61
      if( cornerEqual(corners[i],1,2,3) ) ybr = true;
62
      }
63

  
64
    if( !ybr ) return ERROR_CORNER_YBR_MISSING;
65
    if( !gbr ) return ERROR_CORNER_GBR_MISSING;
66
    if( !gyr ) return ERROR_CORNER_GYR_MISSING;
67
    if( !gyb ) return ERROR_CORNER_GYB_MISSING;
68

  
69
    return 0;
70
    }
71

  
72
///////////////////////////////////////////////////////////////////////////////////////////////////
73

  
74
  private int checkAllCentersPresent(int[] centers)
75
    {
76
    if( centers[0]!=0 && centers[1]!=0 && centers[2]!=0 && centers[3]!=0 ) return ERROR_CENTER_G_MISSING;
77
    if( centers[0]!=1 && centers[1]!=1 && centers[2]!=1 && centers[3]!=1 ) return ERROR_CENTER_Y_MISSING;
78
    if( centers[0]!=2 && centers[1]!=2 && centers[2]!=2 && centers[3]!=2 ) return ERROR_CENTER_B_MISSING;
79
    if( centers[0]!=3 && centers[1]!=3 && centers[2]!=3 && centers[3]!=3 ) return ERROR_CENTER_R_MISSING;
80

  
81
    return 0;
82
    }
83

  
84
///////////////////////////////////////////////////////////////////////////////////////////////////
85

  
86
  private int getFaceOfGreenCenter(int[] centers)
87
    {
88
    if( centers[0]==0 ) return 0;
89
    if( centers[1]==0 ) return 1;
90
    if( centers[2]==0 ) return 2;
91
    if( centers[3]==0 ) return 3;
92

  
93
    return -1;
94
    }
95

  
96
///////////////////////////////////////////////////////////////////////////////////////////////////
97

  
98
  private int[] computeCornerTwists(int[][] corners)
99
    {
100
    return new int[] {0,0,0,0};  // TODO
101
    }
102

  
103
///////////////////////////////////////////////////////////////////////////////////////////////////
104

  
105
  private int computeCenterTwist(int[] centers, int color1, int color2)
106
    {
107
    if( centers[0]==color1 )
108
      {
109
      if( centers[1]==color2 ) return 1;
110
      if( centers[2]==color2 ) return 0;
111
      if( centers[3]==color2 ) return 2;
112

  
113
      return -1;
114
      }
115
    if( centers[1]==color1 )
116
      {
117
      if( centers[0]==color2 ) return 1;
118
      if( centers[2]==color2 ) return 1;
119
      if( centers[3]==color2 ) return 0;
120

  
121
      return -1;
122
      }
123
    if( centers[2]==color1 )
124
      {
125
      if( centers[0]==color2 ) return 0;
126
      if( centers[1]==color2 ) return 1;
127
      if( centers[3]==color2 ) return 1;
128

  
129
      return -1;
130
      }
131
    if( centers[3]==color1 )
132
      {
133
      if( centers[0]==color2 ) return 2;
134
      if( centers[1]==color2 ) return 0;
135
      if( centers[2]==color2 ) return 1;
136

  
137
      return -1;
138
      }
139

  
140
    return -2;
141
    }
32 142

  
33 143
///////////////////////////////////////////////////////////////////////////////////////////////////
34 144

  
......
39 149

  
40 150
///////////////////////////////////////////////////////////////////////////////////////////////////
41 151

  
42
  public String constructError(Resources res)
152
  public int tablebaseIndex(TwistyObject object)
43 153
    {
44
    return null;
154
    int[][] corners = new int[4][3];
155
    int[] centers = new int[4];
156

  
157
    for(int i=0; i<4; i++)
158
      {
159
      centers[i] = object.getCubitFaceStickerIndex(i+4,0);
160

  
161
      for(int j=0; j<3; j++)
162
        corners[i][j] = object.getCubitFaceStickerIndex(i,j);
163
      }
164

  
165
    int result1 = checkAllCornersPresent(corners);
166
    if( result1<0 ) return result1;
167

  
168
    int result2 = checkAllCentersPresent(centers);
169
    if( result2<0 ) return result2;
170

  
171
    int twist_gr = computeCenterTwist(centers,0,3);
172
    int twist_ry = computeCenterTwist(centers,3,1);
173

  
174
    if( (twist_ry-twist_gr+1)%3 != 0 ) return ERROR_TWO_CENTERS_SWAP;
175

  
176
    int[] corner_twists = computeCornerTwists(corners);
177
    int total_twist = corner_twists[0]+corner_twists[1]+corner_twists[2]+corner_twists[3];
178

  
179
    if( (total_twist-twist_gr)%3 !=0 ) return ERROR_CORNER_TWISTED;
180

  
181
    int green_face = getFaceOfGreenCenter(centers);
182

  
183
    return green_face + 4*(corner_twists[3] + 3*(corner_twists[2] + 3*(corner_twists[1] + 3*corner_twists[0])));
45 184
    }
46 185

  
47 186
///////////////////////////////////////////////////////////////////////////////////////////////////
48 187

  
49
  public int[] prepareQuats(TwistyObject object)
188
  public String error(int index, Resources res)
50 189
    {
51
    int c0f0 = object.getCubitFaceStickerIndex(0,0);
52
    int c0f1 = object.getCubitFaceStickerIndex(0,1);
53
    int c0f2 = object.getCubitFaceStickerIndex(0,2);
54

  
55
    int c1f0 = object.getCubitFaceStickerIndex(1,0);
56
    int c1f1 = object.getCubitFaceStickerIndex(1,1);
57
    int c1f2 = object.getCubitFaceStickerIndex(1,2);
58

  
59
    int c2f0 = object.getCubitFaceStickerIndex(2,0);
60
    int c2f1 = object.getCubitFaceStickerIndex(2,1);
61
    int c2f2 = object.getCubitFaceStickerIndex(2,2);
62

  
63
    int c3f0 = object.getCubitFaceStickerIndex(3,0);
64
    int c3f1 = object.getCubitFaceStickerIndex(3,1);
65
    int c3f2 = object.getCubitFaceStickerIndex(3,2);
66

  
67
    int c4f0 = object.getCubitFaceStickerIndex(4,0);
68
    int c5f0 = object.getCubitFaceStickerIndex(5,0);
69
    int c6f0 = object.getCubitFaceStickerIndex(6,0);
70
    int c7f0 = object.getCubitFaceStickerIndex(7,0);
71

  
72
    android.util.Log.e("D", "tip 0: "+c0f0+" "+c0f1+" "+c0f2);
73
    android.util.Log.e("D", "tip 1: "+c1f0+" "+c1f1+" "+c1f2);
74
    android.util.Log.e("D", "tip 2: "+c2f0+" "+c2f1+" "+c2f2);
75
    android.util.Log.e("D", "tip 3: "+c3f0+" "+c3f1+" "+c3f2);
76

  
77
    android.util.Log.e("D", "center 0: "+c4f0);
78
    android.util.Log.e("D", "center 1: "+c5f0);
79
    android.util.Log.e("D", "center 2: "+c6f0);
80
    android.util.Log.e("D", "center 3: "+c7f0);
81

  
82
    return new int[] {0,0,0,0,0,0,0,0};
190
    switch(index)
191
      {
192
      case ERROR_CORNER_YBR_MISSING: String c0 = res.getString(R.string.color_YBR);
193
                                     return res.getString(R.string.solver_generic_missing_corner,c0);
194
      case ERROR_CORNER_GBR_MISSING: String c1 = res.getString(R.string.color_GBR);
195
                                     return res.getString(R.string.solver_generic_missing_corner,c1);
196
      case ERROR_CORNER_GYR_MISSING: String c2 = res.getString(R.string.color_GYR);
197
                                     return res.getString(R.string.solver_generic_missing_corner,c2);
198
      case ERROR_CORNER_GYB_MISSING: String c3 = res.getString(R.string.color_GYB);
199
                                     return res.getString(R.string.solver_generic_missing_corner,c3);
200
      case ERROR_CENTER_G_MISSING  : String colorG = res.getString(R.string.color_green2);
201
                                     return res.getString(R.string.solver_generic_missing_center,colorG);
202
      case ERROR_CENTER_Y_MISSING  : String colorY = res.getString(R.string.color_yellow2);
203
                                     return res.getString(R.string.solver_generic_missing_center,colorY);
204
      case ERROR_CENTER_B_MISSING  : String colorB = res.getString(R.string.color_blue2);
205
                                     return res.getString(R.string.solver_generic_missing_center,colorB);
206
      case ERROR_CENTER_R_MISSING  : String colorR = res.getString(R.string.color_red2);
207
                                     return res.getString(R.string.solver_generic_missing_center,colorR);
208
      case ERROR_TWO_CENTERS_SWAP  : return res.getString(R.string.solver_generic_two_centers);
209
      case ERROR_CORNER_TWISTED    : return res.getString(R.string.solver_generic_corner_twist);
210
      }
211

  
212
    return null;
83 213
    }
84 214

  
85 215
///////////////////////////////////////////////////////////////////////////////////////////////////
86 216

  
87
  public String solution(int[] quats, Resources res)
217
  public String solution(int index, Resources res)
88 218
    {
89 219
    return "";
90 220
    }
src/main/res/values-de/strings.xml
78 78
    <string name="credits3">Rubik und Rubik Cube sind eingetragene Warenzeichen. Wir sind damit nicht verbunden.</string>
79 79

  
80 80
    <string name="explain_stars_text">In dieser Version wird das Konzept der Sterne eingeführt.\n\nVerdiene Sterne durch das Lösen von Rätseln. Sie können auch Sterne kaufen.\n\nGeben Sie Sterne aus, um Rätsel und andere Funktionen in der App freizuschalten.</string>
81
    <string name="solver_generic_error1">Löser für dieses Objekt und diese Größe noch nicht implementiert!</string>
81

  
82
    <string name="solver_generic_not_implemented">Löser für dieses Objekt und diese Größe noch nicht implementiert!</string>
83
    <string name="solver_generic_corner_twist">Eine Ecke muss verdreht werden!</string>
84
    <string name="solver_generic_two_centers">Zwei Zentren müssen ausgetauscht werden!</string>
85
    <string name="solver_generic_missing_center">%1$s Mitte fehlt!</string>
86
    <string name="solver_generic_missing_corner">%1$s Ecke fehlt!</string>
82 87

  
83 88
    <string name="solver_cube3_error1">Es gibt nur %1$d %2$s Facelets.</string>
84 89
    <string name="solver_cube3_error2">Nicht alle 12 Kanten gibt es genau einmal!</string>
85 90
    <string name="solver_cube3_error3">Eine Kante muss umgedreht werden!</string>
86 91
    <string name="solver_cube3_error4">Nicht alle 8 Ecken gibt es genau einmal!</string>
87
    <string name="solver_cube3_error5">Eine Ecke muss verdreht werden!</string>
88 92
    <string name="solver_cube3_error6">Zwei Ecken oder zwei Kanten müssen ausgetauscht werden!</string>
89 93
    <string name="solver_cube3_error7">Für die angegebene maximale Zugzahl gibt es keine Lösung!</string>
90 94
    <string name="solver_cube3_error8">Zeitüberschreitung. Keine Lösung in 20 Sekunden gefunden!</string>
91 95
    <string name="solver_cube3_error9">Löser unterbrochen!</string>
92 96

  
93
    <string name="color_yellow">gelbe</string>
94
    <string name="color_white">weiße</string>
95
    <string name="color_blue">blaue</string>
96
    <string name="color_green">grüne</string>
97
    <string name="color_red">rote</string>
98
    <string name="color_orange">orange</string>
97
    <string name="color_yellow1">gelbe</string>
98
    <string name="color_white1">weiße</string>
99
    <string name="color_blue1">blaue</string>
100
    <string name="color_green1">grüne</string>
101
    <string name="color_red1">rote</string>
102
    <string name="color_orange1">orange</string>
103

  
104
    <string name="color_yellow2">Gelbe</string>
105
    <string name="color_white2">Weiße</string>
106
    <string name="color_blue2">Blaue</string>
107
    <string name="color_green2">Grüne</string>
108
    <string name="color_red2">Rote</string>
109
    <string name="color_orange2">Orange</string>
110

  
111
    <string name="color_YBR">Gelb-blau-rote</string>
112
    <string name="color_GBR">Grün-blau-rote</string>
113
    <string name="color_GYR">Grün-gelb-rote</string>
114
    <string name="color_GYB">Grün-gelb-blaue</string>
99 115

  
100 116
    <string name="solver_cube3_description">Ein nahezu perfekter, sofortiger, zweiphasiger 3x3x3-Löser.\nAutor: Herbert Kociemba.</string>
101 117
    <string name="solver_pduo2_description">Noch nicht implementiert.\nAutor: Leszek Koltunski.</string>
src/main/res/values-es/strings.xml
78 78
    <string name="credits3">Rubik y Rubik Cube son marcas registradas. No estamos afiliados a ella.</string>
79 79

  
80 80
    <string name="explain_stars_text">Esta versión introduce el concepto de estrellas.\n\nGana estrellas resolviendo puzles. También puedes comprar estrellas.\n\nGasta estrellas para desbloquear puzles y otras funciones de la aplicación.</string>
81
    <string name="solver_generic_error1">¡Aún no se implementado el solucionador para este objeto y tamaño!</string>
81

  
82
    <string name="solver_generic_not_implemented">¡Aún no se implementado el solucionador para este objeto y tamaño!</string>
83
    <string name="solver_generic_corner_twist">¡Hay que torcer una esquina!</string>
84
    <string name="solver_generic_two_centers">¡Hay que cambiar dos centros!</string>
85
    <string name="solver_generic_missing_center">¡Falta el centro %1$s!</string>
86
    <string name="solver_generic_missing_corner">¡Falta la esquina %1$s!</string>
82 87

  
83 88
    <string name="solver_cube3_error1">Solo hay %1$d facetas %2$s.</string>
84 89
    <string name="solver_cube3_error2">¡No todos los 12 bordes existen exactamente una vez!</string>
85 90
    <string name="solver_cube3_error3">¡Un borde tiene que voltearse!</string>
86 91
    <string name="solver_cube3_error4">¡No todas las 8 esquinas existen exactamente una vez!</string>
87
    <string name="solver_cube3_error5">¡Hay que torcer una esquina!</string>
88 92
    <string name="solver_cube3_error6">¡Hay que cambiar dos esquinas o dos bordes!</string>
89 93
    <string name="solver_cube3_error7">¡No existe una solución para el número de movimientos máximos dado!</string>
90 94
    <string name="solver_cube3_error8">¡Tiempo de espera agotado, no se encontró ninguna solución en 20 segundos!</string>
91 95
    <string name="solver_cube3_error9">¡Solucionador interrumpido!</string>
92 96

  
93
    <string name="color_yellow">amarillas</string>
94
    <string name="color_white">blancos</string>
95
    <string name="color_blue">azules</string>
96
    <string name="color_green">verdes</string>
97
    <string name="color_red">rojos</string>
98
    <string name="color_orange">naranjas</string>
97
    <string name="color_yellow1">amarillas</string>
98
    <string name="color_white1">blancos</string>
99
    <string name="color_blue1">azules</string>
100
    <string name="color_green1">verdes</string>
101
    <string name="color_red1">rojos</string>
102
    <string name="color_orange1">naranjas</string>
103

  
104
    <string name="color_yellow2">amarillo</string>
105
    <string name="color_white2">blanco</string>
106
    <string name="color_blue2">azul</string>
107
    <string name="color_green2">verde</string>
108
    <string name="color_red2">rojo</string>
109
    <string name="color_orange2">naranja</string>
110

  
111
    <string name="color_YBR">amarilla-azul-roja</string>
112
    <string name="color_GBR">verde-azul-roja</string>
113
    <string name="color_GYR">verde-amarilla-roja</string>
114
    <string name="color_GYB">verde-amarilla-azul</string>
99 115

  
100 116
    <string name="solver_cube3_description">Un 3x3x3 solucionador casi perfecto, instantáneo, de dos fases.\nAutor: Herbert Kociemba.</string>
101 117
    <string name="solver_pduo2_description">Aun no implementado.\nAutor: Leszek Koltunski.</string>
src/main/res/values-fr/strings.xml
78 78
    <string name="credits3">Rubik et Rubik Cube sont des marques déposées. Nous n\'y sommes pas affiliés.</string>
79 79

  
80 80
    <string name="explain_stars_text">Cette version introduit le concept d\'étoiles.\n\nGagnez des étoiles en résolvant des puzzles. Vous pouvez également acheter des étoiles.\n\nDépensez des étoiles pour débloquer des puzzles et d\'autres fonctionnalités de l\'application.</string>
81
    <string name="solver_generic_error1">Solutionneur pour cet objet et cette taille non encore mis en place !</string>
81

  
82
    <string name="solver_generic_not_implemented">Solutionneur pour cet objet et cette taille non encore mis en place !</string>
83
    <string name="solver_generic_corner_twist">Un coin doit être tourné !</string>
84
    <string name="solver_generic_two_centers">Deux centres doivent être échangés !</string>
85
    <string name="solver_generic_missing_center">Centre %1$s manquant !</string>
86
    <string name="solver_generic_missing_corner">Coin %1$s manquant !</string>
82 87

  
83 88
    <string name="solver_cube3_error1">Il n\'y a que %1$d facettes %2$s.</string>
84 89
    <string name="solver_cube3_error2">Les 12 arêtes n\'existent pas exactement une fois !</string>
85 90
    <string name="solver_cube3_error3">Une arête doit être inversée !</string>
86 91
    <string name="solver_cube3_error4">Les 8 coins n\'existent pas tous une seule fois !</string>
87
    <string name="solver_cube3_error5">Un coin doit être tourné !</string>
88 92
    <string name="solver_cube3_error6">Deux coins ou deux arêtes doivent être échangés !</string>
89 93
    <string name="solver_cube3_error7">Aucune solution n\'existe pour le nombre maximum de coups donné !</string>
90 94
    <string name="solver_cube3_error8">Temps imparti, aucune solution trouvée en 20 secondes !</string>
91 95
    <string name="solver_cube3_error9">Solutionneur interrompu !</string>
92 96

  
93
    <string name="color_yellow">jaunes</string>
94
    <string name="color_white">blanches</string>
95
    <string name="color_blue">bleues</string>
96
    <string name="color_green">vertes</string>
97
    <string name="color_red">rouges</string>
98
    <string name="color_orange">orange</string>
97
    <string name="color_yellow1">jaunes</string>
98
    <string name="color_white1">blanches</string>
99
    <string name="color_blue1">bleues</string>
100
    <string name="color_green1">vertes</string>
101
    <string name="color_red1">rouges</string>
102
    <string name="color_orange1">orange</string>
103

  
104
    <string name="color_yellow2">jaune</string>
105
    <string name="color_white2">blanc</string>
106
    <string name="color_blue2">bleu</string>
107
    <string name="color_green2">vert</string>
108
    <string name="color_red2">rouge</string>
109
    <string name="color_orange2">orange</string>
110

  
111
    <string name="color_YBR">jaune-bleu-rouge</string>
112
    <string name="color_GBR">vert-bleu-rouge</string>
113
    <string name="color_GYR">vert-jaune-rouge</string>
114
    <string name="color_GYB">vert-jaune-bleu</string>
99 115

  
100 116
    <string name="solver_cube3_description">Un solveur 3x3x3 biphasé presque parfait, instantané.\nAuteur: Herbert Kociemba.</string>
101 117
    <string name="solver_pduo2_description">Pas encore mis en œuvre.\nAuteur: Leszek Koltunski.</string>
src/main/res/values-ja/strings.xml
79 79
    <string name="credits3">ルービックキューブおよびルービックキューブは登録商標です。 私たちはそれと提携していません。</string>
80 80

  
81 81
    <string name="explain_stars_text">このバージョンでは、星の概念が導入されています。\n\nパズルを解くとスターがもらえます。また、スターを購入することもできます。\n\nスターを消費して、アプリ内のパズルやその他の機能をアンロックします。</string>
82
    <string name="solver_generic_error1">このオブジェクトとサイズのソルバーはまだ実装されていません!</string>
82

  
83
    <string name="solver_generic_not_implemented">このオブジェクトとサイズのソルバーはまだ実装されていません!</string>
84
    <string name="solver_generic_corner_twist">1 つのコーナーをねじる必要があります。</string>
85
    <string name="solver_generic_two_centers">2つのセンターを交換しなければならない!</string>
86
    <string name="solver_generic_missing_center">%1$sのセンターが欠けてる!</string>
87
    <string name="solver_generic_missing_corner">%1$sのコーナーがない!</string>
83 88

  
84 89
    <string name="solver_cube3_error1">%2$s小顔は%1$dつだけ</string>
85 90
    <string name="solver_cube3_error2">12 のエッジすべてが 存在するわけではありません。</string>
86 91
    <string name="solver_cube3_error3">1 つのエッジを反転する必要があります!</string>
87 92
    <string name="solver_cube3_error4">8 つのコーナーすべてが存在するわけではありません!</string>
88
    <string name="solver_cube3_error5">1 つのコーナーをねじる必要があります。</string>
89 93
    <string name="solver_cube3_error6">2 つのコーナーまたは 2 つのエッジを交換する必要があります!</string>
90 94
    <string name="solver_cube3_error7">指定された最大移動数の解答はありません!</string>
91 95
    <string name="solver_cube3_error8">タイムアウトです。20 秒では解答は見つかりません!</string>
92 96
    <string name="solver_cube3_error9">ソルバーが中断されました!</string>
93 97

  
94
    <string name="color_yellow">黄色い</string>
95
    <string name="color_white">白い</string>
96
    <string name="color_blue">青い</string>
97
    <string name="color_green">緑の</string>
98
    <string name="color_red">赤い</string>
99
    <string name="color_orange">オレンジ色の</string>
98
    <string name="color_yellow1">黄色い</string>
99
    <string name="color_white1">白い</string>
100
    <string name="color_blue1">青い</string>
101
    <string name="color_green1">緑の</string>
102
    <string name="color_red1">赤い</string>
103
    <string name="color_orange1">オレンジ色の</string>
104

  
105
    <string name="color_yellow2">イエロー</string>
106
    <string name="color_white2">ホワイト</string>
107
    <string name="color_blue2">ブルー</string>
108
    <string name="color_green2">グリーン</string>
109
    <string name="color_red2">レッド</string>
110
    <string name="color_orange2">オレンジ</string>
111

  
112
    <string name="color_YBR">黄青赤</string>
113
    <string name="color_GBR">緑青赤</string>
114
    <string name="color_GYR">緑黄赤</string>
115
    <string name="color_GYB">緑黄青</string>
100 116

  
101 117
    <string name="solver_cube3_description">ほぼ完璧で瞬間的な 2 フェーズ 3x3x3 ソルバー。\n著者: Herbert Kociemba.</string>
102 118
    <string name="solver_pduo2_description">まだ実装されていません。\n著者: Leszek Koltunski.</string>
src/main/res/values-ko/strings.xml
78 78
    <string name="credits3">Rubik 및 Rubik Cube는 등록 상표입니다. 우리는 그것과 제휴하지 않습니다.</string>
79 79

  
80 80
    <string name="explain_stars_text">이 버전은 별의 개념을 소개합니다.\n\n퍼즐을 풀어 별을 획득하세요. 별을 살 수도 있습니다.\n\n앱에서 퍼즐 및 기타 기능을 잠금 해제하려면 별을 사용하세요.</string>
81
    <string name="solver_generic_error1">아직 구현되지 않은 이 개체 및 크기에 대한 해결사!</string>
81

  
82
    <string name="solver_generic_not_implemented">아직 구현되지 않은 이 개체 및 크기에 대한 해결사!</string>
83
    <string name="solver_generic_corner_twist">한쪽 모서리를 비틀어야 합니다!</string>
84
    <string name="solver_generic_two_centers">두 개의 센터를 교환해야 합니다!</string>
85
    <string name="solver_generic_missing_center">%1$s 중앙이 사라졌습니다!</string>
86
    <string name="solver_generic_missing_corner">%1$s 모서리 금지!</string>
82 87

  
83 88
    <string name="solver_cube3_error1">%2$s작은 얼굴은  %1$d개뿐입니다.</string>
84 89
    <string name="solver_cube3_error2">12개의 가장자리 모두가 정확하게 한 번 존재하지 않습니다!</string>
85 90
    <string name="solver_cube3_error3">한쪽 가장자리를 뒤집어야 합니다!</string>
86 91
    <string name="solver_cube3_error4">8개의 모서리 모두가 정확하게 한 번 존재하지 않습니다!</string>
87
    <string name="solver_cube3_error5">한쪽 모서리를 비틀어야 합니다!</string>
88 92
    <string name="solver_cube3_error6">두 모서리 또는 두 가장자리를 교환해야합니다!</string>
89 93
    <string name="solver_cube3_error7">지정된 최대 이동 수에 대한 해답이 없습니다!</string>
90 94
    <string name="solver_cube3_error8">시간 초과, 20초 안에 해답이 발견되지 않았습니다!</string>
91 95
    <string name="solver_cube3_error9">해결사가 중단되었습니다!</string>
92 96

  
93
    <string name="color_yellow">노란색</string>
94
    <string name="color_white">하얀</string>
95
    <string name="color_blue">파란색</string>
96
    <string name="color_green">녹색의</string>
97
    <string name="color_red">빨간</string>
98
    <string name="color_orange">주황색</string>
97
    <string name="color_yellow1">노란색</string>
98
    <string name="color_white1">하얀</string>
99
    <string name="color_blue1">파란색</string>
100
    <string name="color_green1">녹색의</string>
101
    <string name="color_red1">빨간</string>
102
    <string name="color_orange1">주황색</string>
103

  
104
    <string name="color_yellow2">옐로우</string>
105
    <string name="color_white2">화이트</string>
106
    <string name="color_blue2">블루</string>
107
    <string name="color_green2">그린</string>
108
    <string name="color_red2">레드</string>
109
    <string name="color_orange2">오렌지</string>
110

  
111
    <string name="color_YBR">노란색-파란색-빨간색</string>
112
    <string name="color_GBR">녹색-파란색-빨간색</string>
113
    <string name="color_GYR">녹색-노란색-빨간색</string>
114
    <string name="color_GYB">녹색-노란색-파란색</string>
99 115

  
100 116
    <string name="solver_cube3_description">거의 완벽하고 즉각적인 2상 3x3x3 솔버입니다.\n작가: Herbert Kociemba.</string>
101 117
    <string name="solver_pduo2_description">아직 구현되지 않음\n작가: Leszek Koltunski.</string>
src/main/res/values-pl/strings.xml
78 78
    <string name="credits3">Rubik i RubikCube to zarejestrowane znaki towarowe. Nie jesteśmy z nimi powiązani.</string>
79 79

  
80 80
    <string name="explain_stars_text">Ta wersja wprowadza koncepcję gwiazdek.\n\nZdobywaj gwiazdki, rozwiązując kostki. Możesz także kupić gwiazdki.\n\nWydawaj gwiazdki, aby odblokować obiekty i inne funkcje w aplikacji.</string>
81
    <string name="solver_generic_error1">Rozwiązywacz takiego obiektu jest jeszcze nie zaimplementowany!</string>
81

  
82
    <string name="solver_generic_not_implemented">Rozwiązywacz takiego obiektu jest jeszcze nie zaimplementowany!</string>
83
    <string name="solver_generic_corner_twist">Jeden z rogów musi byc obrócony!</string>
84
    <string name="solver_generic_two_centers">Dwa środki muszą być wymienione!</string>
85
    <string name="solver_generic_missing_center">Brakuje %1$s środka!</string>
86
    <string name="solver_generic_missing_corner">Brakuje %1$s rogu!</string>
82 87

  
83 88
    <string name="solver_cube3_error1">Jest tylko %1$d %2$s ścian.</string>
84 89
    <string name="solver_cube3_error2">Któraś z 12 krawędzi nie istnieje!</string>
85 90
    <string name="solver_cube3_error3">Jedna z krawędzi musi być odwrócona!</string>
86 91
    <string name="solver_cube3_error4">Jeden z 8 rogów nie istnieje!</string>
87
    <string name="solver_cube3_error5">Jeden z rogów musi byc obrócony!</string>
88 92
    <string name="solver_cube3_error6">Dwa rogi albo dwie krawędzie muszą byc obrócone!</string>
89 93
    <string name="solver_cube3_error7">Rozwiązanie nie zostało znalezione!</string>
90 94
    <string name="solver_cube3_error8">Minęło 20 sekund i rozwiązanie nie zostało znalezione!</string>
91 95
    <string name="solver_cube3_error9">Rozwiązywacz przerwany!</string>
92 96

  
93
    <string name="color_yellow">żółtych</string>
94
    <string name="color_white">białych</string>
95
    <string name="color_blue">niebieskich</string>
96
    <string name="color_green">zielonych</string>
97
    <string name="color_red">czerwonych</string>
98
    <string name="color_orange">pomarańczowych</string>
97
    <string name="color_yellow1">żółtych</string>
98
    <string name="color_white1">białych</string>
99
    <string name="color_blue1">niebieskich</string>
100
    <string name="color_green1">zielonych</string>
101
    <string name="color_red1">czerwonych</string>
102
    <string name="color_orange1">pomarańczowych</string>
103

  
104
    <string name="color_yellow2">żółtego</string>
105
    <string name="color_white2">białego</string>
106
    <string name="color_blue2">niebieskiego</string>
107
    <string name="color_green2">zielonego</string>
108
    <string name="color_red2">czerwonego</string>
109
    <string name="color_orange2">pomarańczowego</string>
110

  
111
    <string name="color_YBR">żółto-niebiesko-czerwonego</string>
112
    <string name="color_GBR">zielono-niebiesko-czerwonego</string>
113
    <string name="color_GYR">zielono-żółto-czerwonego</string>
114
    <string name="color_GYB">zielono-żółto-niebieskiego</string>
99 115

  
100 116
    <string name="solver_cube3_description">Natychmiastowy, prawie perfekcyjny rozwiązywacz kostki 3x3x3.\nAutor: Herbert Kociemba.</string>
101 117
    <string name="solver_pduo2_description">Jeszcze nie zaimplementowany.\nAutor: Leszek Koltunski.</string>
src/main/res/values-ru/strings.xml
78 78
    <string name="credits3">Рубик и Кубик Рубика являются зарегистрированными товарными знаками. Мы не связаны с этим.</string>
79 79

  
80 80
    <string name="explain_stars_text">В этой версии введена концепция звезд.\n\nЗарабатывайте звезды, решая головоломки. Вы также можете покупать звезды.\n\nТратьте звезды, чтобы разблокировать головоломки и другие возможности приложения.</string>
81
    <string name="solver_generic_error1">Решебника для этого объекта и размера еще нет!</string>
81

  
82
    <string name="solver_generic_not_implemented">Решебника для этого объекта и размера еще нет!</string>
83
    <string name="solver_generic_corner_twist">Один угол должен быть переставлен!</string>
84
    <string name="solver_generic_two_centers">Два центра должны быть обменены!</string>
85
    <string name="solver_generic_missing_center">%1$s центр отсутствует!</string>
86
    <string name="solver_generic_missing_corner">Нет %1$s угла!</string>
82 87

  
83 88
    <string name="solver_cube3_error1">Всего %1$d %2$s граней!</string>
84 89
    <string name="solver_cube3_error2">Не все 12 ребер существуют в единичном экземпляре!</string>
85 90
    <string name="solver_cube3_error3">Надо перевернуть одно ребро!</string>
86 91
    <string name="solver_cube3_error4">Не все 8 углов существуют в единичном экземпляре!</string>
87
    <string name="solver_cube3_error5">Один угол должен быть переставлен!</string>
88 92
    <string name="solver_cube3_error6">Надо поменять местами два угла или два ребра!</string>
89 93
    <string name="solver_cube3_error7">Не существует решения для данного максимального числа ходов!</string>
90 94
    <string name="solver_cube3_error8">Время вышло: решение не найдено в течение 20 секунд!</string>
91 95
    <string name="solver_cube3_error9">Решебник прерван!</string>
92 96
]
93
    <string name="color_yellow">желтых</string>
94
    <string name="color_white">белых</string>
95
    <string name="color_blue">синих</string>
96
    <string name="color_green">зеленых</string>
97
    <string name="color_red">красных</string>
98
    <string name="color_orange">оранжевых</string>
97
    <string name="color_yellow1">желтых</string>
98
    <string name="color_white1">белых</string>
99
    <string name="color_blue1">синих</string>
100
    <string name="color_green1">зеленых</string>
101
    <string name="color_red1">красных</string>
102
    <string name="color_orange1">оранжевых</string>
103

  
104
    <string name="color_yellow2">Желтый</string>
105
    <string name="color_white2">Белый</string>
106
    <string name="color_blue2">Синий</string>
107
    <string name="color_green2">Зеленый</string>
108
    <string name="color_red2">Kрасный</string>
109
    <string name="color_orange2">Оранжевый</string>
110

  
111
    <string name="color_YBR">желто-сине-красного</string>
112
    <string name="color_GBR">зелено-сине-красного</string>
113
    <string name="color_GYR">зелено-желто-красного</string>
114
    <string name="color_GYB">зелено-желто-синего</string>
99 115

  
100 116
    <string name="solver_cube3_description">Практически идеальный, мгновенный, двухфазный решатель 3x3x3.\nАвтор: Herbert Kociemba.</string>
101 117
    <string name="solver_pduo2_description">Еще не реализован.\nАвтор: Leszek Koltunski.</string>
src/main/res/values-zh-rCN/strings.xml
84 84
    <string name="decline">拒绝</string>
85 85

  
86 86
    <string name="explain_stars_text">这个版本引入了星星的概念。\n\n通过解开谜题获得星星。你也可以购买星星。\n\n花费星星来解锁应用程序中的谜题和其他功能。</string>
87
    <string name="solver_generic_error1">此对象和尺寸的求解器尚未实现!</string>
87

  
88
    <string name="solver_generic_not_implemented">此对象和尺寸的求解器尚未实现!</string>
89
    <string name="solver_generic_corner_twist">一个角需要扭动!</string>
90
    <string name="solver_generic_two_centers">必须要交换两个中心!</string>
91
    <string name="solver_generic_missing_center">%1$s中心不見了!</string>
92
    <string name="solver_generic_missing_corner">没有%1$s的角落!</string>
88 93

  
89 94
    <string name="solver_cube3_error1">只有%1$d个%2$s小面</string>
90 95
    <string name="solver_cube3_error2">并非所有12条边都只存在一次!</string>
91 96
    <string name="solver_cube3_error3">一条边需要翻转!</string>
92 97
    <string name="solver_cube3_error4">并非所有8个角都只存在一次!</string>
93
    <string name="solver_cube3_error5">一个角需要扭动!</string>
94 98
    <string name="solver_cube3_error6">两个角或两条边需要交换!</string>
95 99
    <string name="solver_cube3_error7">对于给定的最大移动数,没有解决方案!</string>
96 100
    <string name="solver_cube3_error8">超时,20秒内未找到解决方案!</string>
97 101
    <string name="solver_cube3_error9">求解器中断!</string>
98 102

  
99
    <string name="color_yellow">黄色的</string>
100
    <string name="color_white">白色的</string>
101
    <string name="color_blue">蓝色的</string>
102
    <string name="color_green">绿色的</string>
103
    <string name="color_red">红色的</string>
104
    <string name="color_orange">橙色的</string>
103
    <string name="color_yellow1">黄色的</string>
104
    <string name="color_white1">白色的</string>
105
    <string name="color_blue1">蓝色的</string>
106
    <string name="color_green1">绿色的</string>
107
    <string name="color_red1">红色的</string>
108
    <string name="color_orange1">橙色的</string>
109

  
110
    <string name="color_yellow2">黄色</string>
111
    <string name="color_white2">白色</string>
112
    <string name="color_blue2">蓝色</string>
113
    <string name="color_green2">绿色</string>
114
    <string name="color_red2">红色</string>
115
    <string name="color_orange2">橙色</string>
116

  
117
    <string name="color_YBR">黄-蓝-红</string>
118
    <string name="color_GBR">绿-蓝-红</string>
119
    <string name="color_GYR">绿-黄-红</string>
120
    <string name="color_GYB">绿-黄-蓝</string>
105 121

  
106 122
    <string name="solver_cube3_description">一个几乎完美的、瞬时的、两相的3x3x3解算器。\n作者: Herbert Kociemba.</string>
107 123
    <string name="solver_pduo2_description">尚未实施。\n作者: Leszek Koltunski.</string>
src/main/res/values-zh-rTW/strings.xml
78 78
    <string name="credits3">魔方和魔方是註冊商標。 我們不隸屬於它。</string>
79 79

  
80 80
    <string name="explain_stars_text">這個版本引入了星星的概念。\n\n通過解開謎題贏得星星。你也可以購買星星。\n\n花費星星來解鎖應用程序中的謎題和其他功能。</string>
81
    <string name="solver_generic_error1">此對象和尺寸的求解器尚未實現!</string>
81

  
82
    <string name="solver_generic_not_implemented">此對象和尺寸的求解器尚未實現!</string>
83
    <string name="solver_generic_corner_twist">一個角需要扭動!</string>
84
    <string name="solver_generic_two_centers">兩個中鋒要互換!</string>
85
    <string name="solver_generic_missing_center">%1$s的中心不见了!</string>
86
    <string name="solver_generic_missing_corner">沒有%1$s的角落!</string>
82 87

  
83 88
    <string name="solver_cube3_error1">只有%1$d個%2$s小臉</string>
84 89
    <string name="solver_cube3_error2">並非所有12條邊都只存在一次!</string>
85 90
    <string name="solver_cube3_error3">一條邊需要翻轉!</string>
86 91
    <string name="solver_cube3_error4">並非所有8個角都只存在一次!</string>
87
    <string name="solver_cube3_error5">一個角需要扭動!</string>
88 92
    <string name="solver_cube3_error6">兩個角或兩條邊需要交换!</string>
89 93
    <string name="solver_cube3_error7">對於给定的最大移動數,没有解决方案!</string>
90 94
    <string name="solver_cube3_error8">超時,20秒内未找到解决方案!</string>
91 95
    <string name="solver_cube3_error9">求解器中斷!</string>
92 96

  
93
    <string name="color_yellow">黃色的</string>
94
    <string name="color_white">白色的</string>
95
    <string name="color_blue">藍色的</string>
96
    <string name="color_green">綠色的</string>
97
    <string name="color_red">紅色的</string>
98
    <string name="color_orange">橙色的</string>
97
    <string name="color_yellow1">黃色的</string>
98
    <string name="color_white1">白色的</string>
99
    <string name="color_blue1">藍色的</string>
100
    <string name="color_green1">綠色的</string>
101
    <string name="color_red1">紅色的</string>
102
    <string name="color_orange1">橙色的</string>
103

  
104
    <string name="color_yellow2">黃色</string>
105
    <string name="color_white2">白色</string>
106
    <string name="color_blue2">藍色</string>
107
    <string name="color_green2">綠色</string>
108
    <string name="color_red2">紅色</string>
109
    <string name="color_orange2">橙色</string>
110

  
111
    <string name="color_YBR">黄-蓝-红</string>
112
    <string name="color_GBR">绿-蓝-红</string>
113
    <string name="color_GYR">绿-黄-红</string>
114
    <string name="color_GYB">绿-黄-蓝</string>
99 115

  
100 116
    <string name="solver_cube3_description">一個近乎完美的瞬時兩相 3x3x3 求解器。\n作者: Herbert Kociemba.</string>
101 117
    <string name="solver_pduo2_description">尚未實現。\n作者: Leszek Koltunski.</string>
src/main/res/values/strings.xml
99 99
    <string name="opengl_error" translatable="false">Error</string>
100 100
    <string name="opengl_error_text" translatable="false">This device does not support OpenGL 3.0</string>
101 101

  
102
    <string name="solver_generic_error1">Solver for this object not implemented yet!</string>
102
    <string name="solver_generic_not_implemented">Solver for this object not implemented yet!</string>
103
    <string name="solver_generic_corner_twist">One corner has to be twisted!</string>
104
    <string name="solver_generic_two_centers">Two centers have to be exchanged!</string>
105
    <string name="solver_generic_missing_center">%1$s center missing!</string>
106
    <string name="solver_generic_missing_corner">%1$s corner missing!</string>
107

  
103 108
    <string name="solver_cube3_error1">There are only %1$d %2$s facelets.</string>
104 109
    <string name="solver_cube3_error2">Not all 12 edges exist exactly once!</string>
105 110
    <string name="solver_cube3_error3">One edge has to be flipped!</string>
106 111
    <string name="solver_cube3_error4">Not all 8 corners exist exactly once!</string>
107
    <string name="solver_cube3_error5">One corner has to be twisted!</string>
108 112
    <string name="solver_cube3_error6">Two corners or two edges have to be exchanged!</string>
109 113
    <string name="solver_cube3_error7">No solution exists for the given maximum move number!</string>
110 114
    <string name="solver_cube3_error8">Timeout, no solution found in 20 seconds!</string>
111 115
    <string name="solver_cube3_error9">Solver interrupted!</string>
112 116

  
113
    <string name="color_yellow">yellow</string>
114
    <string name="color_white">white</string>
115
    <string name="color_blue">blue</string>
116
    <string name="color_green">green</string>
117
    <string name="color_red">red</string>
118
    <string name="color_orange">orange</string>
117
    <string name="color_yellow1">yellow</string>
118
    <string name="color_white1">white</string>
119
    <string name="color_blue1">blue</string>
120
    <string name="color_green1">green</string>
121
    <string name="color_red1">red</string>
122
    <string name="color_orange1">orange</string>
123

  
124
    <string name="color_yellow2">Yellow</string>
125
    <string name="color_white2">White</string>
126
    <string name="color_blue2">Blue</string>
127
    <string name="color_green2">Green</string>
128
    <string name="color_red2">Red</string>
129
    <string name="color_orange2">Orange</string>
130

  
131
    <string name="color_YBR">Yellow-blue-red</string>
132
    <string name="color_GBR">Green-blue-red</string>
133
    <string name="color_GYR">Green-yellow-red</string>
134
    <string name="color_GYB">Green-yellow-blue</string>
119 135

  
120 136
    <string name="solver_cube3_title" translatable="false">Kociemba 3x3 Solver</string>
121 137
    <string name="solver_pduo2_title" translatable="false">Pyraminx Duo Solver</string>

Also available in: Unified diff