Project

General

Profile

« Previous | Next » 

Revision f4b24b79

Added by Leszek Koltunski about 18 hours ago

Restructuring for the solvers in the app.

View differences:

src/main/java/org/distorted/objects/RubikObject.java
81 81
    int patternOrdinal  = RubikPatternList.getOrdinal(mObjectIndex);
82 82
    mPatterns = RubikPatternList.getPatterns(patternOrdinal);
83 83

  
84
    mSolverOrdinal = SolvingList.getSolverOrdinal(mObjectIndex);
84
    mSolverOrdinal = SolvingList.getSolverOrdinal(mObjectOrdinal);
85 85
    mExtrasOrdinal = -1;
86 86

  
87 87
    mObjectVersion = meta.objectVersion();
src/main/java/org/distorted/solvers/SolverTablebase.java
13 13

  
14 14
import org.distorted.objectlib.helpers.OperatingSystemInterface;
15 15
import org.distorted.objectlib.main.TwistyObject;
16
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
17
import org.distorted.objectlib.tablebases.TablebasesAbstract;
16 18
import org.distorted.solverui.ScreenSolver;
17 19

  
18 20
///////////////////////////////////////////////////////////////////////////////////////////////////
......
22 24
  private final OperatingSystemInterface mOS;
23 25
  private final Resources mRes;
24 26
  private final TwistyObject mObject;
27
  private TablebasesAbstract mSolver;
25 28

  
26 29
///////////////////////////////////////////////////////////////////////////////////////////////////
27 30

  
28 31
  public abstract int tablebaseIndex(TwistyObject object);
29 32
  public abstract String error(int index, Resources res);
30
  public abstract int[][] solution(int index, OperatingSystemInterface os);
31 33

  
32 34
///////////////////////////////////////////////////////////////////////////////////////////////////
33 35
// PUBLIC API
......
40 42
    mObject= object;
41 43
    }
42 44

  
45
///////////////////////////////////////////////////////////////////////////////////////////////////
46

  
47
  int[] getExtra() { return null; }
48

  
43 49
///////////////////////////////////////////////////////////////////////////////////////////////////
44 50

  
45 51
  public void solve(ScreenSolver screen)
......
48 54

  
49 55
    if( index>=0 )
50 56
      {
51
      int[][] moves = solution(index,mOS);
57
      if( mSolver==null )
58
        {
59
        mSolver = ImplementedTablebasesList.createPacked(mOS, mObject.getShortName() );
60
        }
61

  
62
      mSolver.initialize();
63
      int[][] moves = mSolver!=null ? mSolver.solution(index,getExtra(),mOS) : null;
52 64
      screen.setSolved(moves);
53 65
      }
54 66
    else
src/main/java/org/distorted/solvers/SolverTablebaseCU232.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TablebaseHelpers;
20
import org.distorted.objectlib.tablebases.TablebasesAbstract;
21 18

  
22 19
///////////////////////////////////////////////////////////////////////////////////////////////////
23 20

  
......
41 38
  private static final int ERROR_EDGE_TWISTED    = -14;
42 39
  private static final int ERROR_CORNER_TWISTED  = -15;
43 40

  
44
  TablebasesAbstract mSolver;
45 41
  private final int[] mFaceColors;
46 42

  
47 43
///////////////////////////////////////////////////////////////////////////////////////////////////
......
402 398

  
403 399
    return null;
404 400
    }
405

  
406
///////////////////////////////////////////////////////////////////////////////////////////////////
407

  
408
  public int[][] solution(int index, OperatingSystemInterface os)
409
    {
410
    if( mSolver==null )
411
      {
412
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.CU_232.name() );
413
      }
414

  
415
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
416
    }
417 401
}  
418 402

  
src/main/java/org/distorted/solvers/SolverTablebaseCU323.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TBCuboid323;
20 18
import org.distorted.objectlib.tablebases.TablebaseHelpers;
21
import org.distorted.objectlib.tablebases.TablebasesAbstract;
22 19

  
23 20
///////////////////////////////////////////////////////////////////////////////////////////////////
21
// a few cu_323 max (depth 18) indices: 1180633, 1180642, 1182044, 1190482, 128151851, 128190028
24 22

  
25 23
public class SolverTablebaseCU323 extends SolverTablebase
26 24
{
......
30 28
  private static final int ERROR_EDGE_TWISTED   = -4;
31 29
  private static final int ERROR_CORNER_TWISTED = -5;
32 30

  
33
  TablebasesAbstract mSolver;
34 31
  private final int[] mFaceColors;
35 32
  private int mErrorColor1, mErrorColor2, mErrorColor3;
36 33

  
......
437 434

  
438 435
    return null;
439 436
    }
440

  
441
///////////////////////////////////////////////////////////////////////////////////////////////////
442
// a few cu_323 max (depth 18) indices:
443
// 1180633, 1180642, 1182044, 1190482, 128151851, 128190028
444

  
445
  public int[][] solution(int index, OperatingSystemInterface os)
446
    {
447
    if( mSolver==null )
448
      {
449
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.CU_323.name() );
450
      }
451

  
452
    ((TBCuboid323)mSolver).initialize();
453
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
454
    }
455 437
}  
456 438

  
src/main/java/org/distorted/solvers/SolverTablebaseCUBE2.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TablebaseHelpers;
20
import org.distorted.objectlib.tablebases.TablebasesAbstract;
21 18
import org.distorted.objectlib.tablebases.TBCube2;
22 19

  
23 20
///////////////////////////////////////////////////////////////////////////////////////////////////
......
35 32
  private static final int ERROR_CORNERS_CANNOT     = -9;
36 33
  private static final int ERROR_CORNER_TWISTED     = -10;
37 34

  
38
  TablebasesAbstract mSolver;
39 35
  private final int[] mFaceColors;
40 36

  
41 37
////////////////////////////////////////////////////////////////////////////////////////
......
281 277

  
282 278
    return null;
283 279
    }
284

  
285
///////////////////////////////////////////////////////////////////////////////////////////////////
286

  
287
  public int[][] solution(int index, OperatingSystemInterface os)
288
    {
289
    if( mSolver==null )
290
      {
291
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.CUBE_2.name() );
292
      }
293

  
294
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
295
    }
296 280
}  
297 281

  
src/main/java/org/distorted/solvers/SolverTablebaseDIAM2.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TablebaseHelpers;
20
import org.distorted.objectlib.tablebases.TablebasesAbstract;
21 18

  
22 19
///////////////////////////////////////////////////////////////////////////////////////////////////
23 20

  
......
45 42
  private static final int ERROR_CORNER_TWIST_180 = -18;
46 43
  private static final int ERROR_CORNERS_CANNOT   = -19;
47 44

  
48
  private TablebasesAbstract mSolver;
49 45
  private final int[] mFaceColors;
50 46

  
51 47
  private static final int[] FREE_CENTERS = {0,2,5,7};
......
496 492

  
497 493
    return null;
498 494
    }
499

  
500
///////////////////////////////////////////////////////////////////////////////////////////////////
501

  
502
  public int[][] solution(int index, OperatingSystemInterface os)
503
    {
504
    if( mSolver==null )
505
      {
506
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.DIAM_2.name());
507
      }
508

  
509
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
510
    }
511 495
}  
512 496

  
src/main/java/org/distorted/solvers/SolverTablebaseDINO4.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18 17
import org.distorted.objectlib.shape.ShapeColors;
19 18
import org.distorted.objectlib.shape.ShapeHexahedron;
20
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
21 19
import org.distorted.objectlib.tablebases.TBDino4;
22
import org.distorted.objectlib.tablebases.TablebasesAbstract;
23 20

  
24 21
///////////////////////////////////////////////////////////////////////////////////////////////////
25 22

  
26 23
public class SolverTablebaseDINO4 extends SolverTablebase
27 24
{
28 25
  private static final int ERROR_EDGE_THREE  = -1;
29
  private TablebasesAbstract mSolver;
30 26
  private int mErrorColor;
31 27

  
32 28
///////////////////////////////////////////////////////////////////////////////////////////////////
......
169 165

  
170 166
    return res.getString(R.string.solver_generic_edge_three,color);
171 167
    }
172

  
173
///////////////////////////////////////////////////////////////////////////////////////////////////
174

  
175
  public int[][] solution(int index, OperatingSystemInterface os)
176
    {
177
    if( mSolver==null )
178
      {
179
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.DIN4_3.name() );
180
      }
181

  
182
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
183
    }
184 168
}  
185 169

  
src/main/java/org/distorted/solvers/SolverTablebaseDINO6.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TBDino6;
20 18
import org.distorted.objectlib.tablebases.TablebaseHelpers;
21
import org.distorted.objectlib.tablebases.TablebasesAbstract;
22 19

  
23 20
///////////////////////////////////////////////////////////////////////////////////////////////////
24 21

  
......
37 34
                      {5,2},{0,5},{5,3},{1,5}
38 35
                     };
39 36

  
40
  private TablebasesAbstract mSolver;
41 37
  private final int[] mFaceColors;
42 38
  private int mErrorColor1, mErrorColor2;
43 39

  
......
435 431

  
436 432
    return null;
437 433
    }
438

  
439
///////////////////////////////////////////////////////////////////////////////////////////////////
440

  
441
  public int[][] solution(int index, OperatingSystemInterface os)
442
    {
443
    if( mSolver==null )
444
      {
445
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.DINO_3.name() );
446
      }
447

  
448
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
449
    }
450 434
}  
451 435

  
src/main/java/org/distorted/solvers/SolverTablebaseIVY2.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TablebaseHelpers;
20
import org.distorted.objectlib.tablebases.TablebasesAbstract;
21 18

  
22 19
///////////////////////////////////////////////////////////////////////////////////////////////////
23 20

  
......
32 29
  private static final int ERROR_TWO_CENTERS_SWAP = -7;
33 30
  private static final int ERROR_CORNERS_CANNOT   = -8;
34 31

  
35
  TablebasesAbstract mSolver;
36

  
37 32
///////////////////////////////////////////////////////////////////////////////////////////////////
38 33

  
39 34
  private int checkAllCentersPresent(int[] centers)
......
238 233

  
239 234
    return null;
240 235
    }
241

  
242
///////////////////////////////////////////////////////////////////////////////////////////////////
243

  
244
  public int[][] solution(int index, OperatingSystemInterface os)
245
    {
246
    if( mSolver==null )
247
      {
248
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.IVY_2.name() );
249
      }
250

  
251
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
252
    }
253 236
}  
254 237

  
src/main/java/org/distorted/solvers/SolverTablebaseJING2.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TBPyraminx;
20 18
import org.distorted.objectlib.tablebases.TablebaseHelpers;
21
import org.distorted.objectlib.tablebases.TablebasesAbstract;
22 19

  
23 20
///////////////////////////////////////////////////////////////////////////////////////////////////
24 21

  
......
47 44
  private static final int ERROR_TWO_EDGES          = -18;
48 45
  private static final int ERROR_TWO_CENTERS        = -19;
49 46

  
50
  private TablebasesAbstract mSolver;
51 47
  private int[] mFaceColors;
52 48

  
53 49
///////////////////////////////////////////////////////////////////////////////////////////////////
......
520 516

  
521 517
    return null;
522 518
    }
523

  
524
///////////////////////////////////////////////////////////////////////////////////////////////////
525

  
526
  public int[][] solution(int index, OperatingSystemInterface os)
527
    {
528
    if( mSolver==null )
529
      {
530
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.JING_2.name());
531
      }
532

  
533
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
534
    }
535 519
}  
536 520

  
src/main/java/org/distorted/solvers/SolverTablebasePDIA3.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TablebaseHelpers;
20
import org.distorted.objectlib.tablebases.TablebasesAbstract;
21 18

  
22 19
///////////////////////////////////////////////////////////////////////////////////////////////////
23 20

  
......
42 39
  private static final int ERROR_TWO_CENTERS      = -15;
43 40
  private static final int ERROR_CORNERS_CANNOT   = -16;
44 41

  
45
  private TablebasesAbstract mSolver;
46 42
  private final int[] mFaceColors;
47 43

  
48 44
///////////////////////////////////////////////////////////////////////////////////////////////////
......
359 355

  
360 356
    return null;
361 357
    }
362

  
363
///////////////////////////////////////////////////////////////////////////////////////////////////
364

  
365
  public int[][] solution(int index, OperatingSystemInterface os)
366
    {
367
    if( mSolver==null )
368
      {
369
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.PDIA_3.name() );
370
      }
371

  
372
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
373
    }
374 358
}  
375 359

  
src/main/java/org/distorted/solvers/SolverTablebasePDUO2.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19
import org.distorted.objectlib.tablebases.TablebasesAbstract;
20 17

  
21 18
///////////////////////////////////////////////////////////////////////////////////////////////////
22 19

  
......
37 34

  
38 35
  private static final int ERROR_CORNERS_CANNOT   = -11;
39 36

  
40
  TablebasesAbstract mSolver;
41

  
42 37
///////////////////////////////////////////////////////////////////////////////////////////////////
43 38

  
44 39
  private boolean cornerEqual(int[] corner, int c1, int c2, int c3)
......
283 278

  
284 279
    return null;
285 280
    }
286

  
287
///////////////////////////////////////////////////////////////////////////////////////////////////
288

  
289
  public int[][] solution(int index, OperatingSystemInterface os)
290
    {
291
    if( mSolver==null )
292
      {
293
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.PDUO_2.name() );
294
      }
295

  
296
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
297
    }
298 281
}  
299 282

  
src/main/java/org/distorted/solvers/SolverTablebasePYRA3.java
13 13

  
14 14
import org.distorted.main.R;
15 15
import org.distorted.objectlib.helpers.OperatingSystemInterface;
16
import org.distorted.objectlib.metadata.ListObjects;
17 16
import org.distorted.objectlib.main.TwistyObject;
18
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
19 17
import org.distorted.objectlib.tablebases.TablebaseHelpers;
20
import org.distorted.objectlib.tablebases.TablebasesAbstract;
21 18
import org.distorted.objectlib.tablebases.TBPyraminx;
22 19

  
23 20
///////////////////////////////////////////////////////////////////////////////////////////////////
......
47 44
  private static final int ERROR_C_V_DONT_MATCH   = -18;
48 45
  private static final int ERROR_TWO_EDGES        = -19;
49 46

  
50
  private TablebasesAbstract mSolver;
51 47
  private int[] mCornerTwist;
52 48
  private int[] mFaceColors;
53 49

  
......
536 532

  
537 533
///////////////////////////////////////////////////////////////////////////////////////////////////
538 534

  
539
  public int[][] solution(int index, OperatingSystemInterface os)
540
    {
541
    if( mSolver==null )
542
      {
543
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.PYRA_3.name());
544
      }
545

  
546
    return mSolver!=null ? mSolver.solution(index,mCornerTwist,os) : null;
547
    }
535
  @Override int[] getExtra() { return mCornerTwist; }
548 536
}  
549 537

  
src/main/java/org/distorted/solvers/SolverTablebaseSKEW2.java
16 16

  
17 17
import org.distorted.main.R;
18 18
import org.distorted.objectlib.helpers.OperatingSystemInterface;
19
import org.distorted.objectlib.metadata.ListObjects;
20 19
import org.distorted.objectlib.main.TwistyObject;
21
import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
22 20
import org.distorted.objectlib.tablebases.TBSkewb;
23 21
import org.distorted.objectlib.tablebases.TablebaseHelpers;
24
import org.distorted.objectlib.tablebases.TablebasesAbstract;
25 22

  
26 23
///////////////////////////////////////////////////////////////////////////////////////////////////
27 24

  
......
51 48
  private static final int ERROR_FREE_CORNERS_NOT_EVEN    = -19;
52 49
  private static final int ERROR_FREE_CORNERS_ROTATED     = -20;
53 50

  
54
  private TablebasesAbstract mSolver;
55 51
  private final int[] mFaceColors;
56 52

  
57 53
///////////////////////////////////////////////////////////////////////////////////////////////////
......
435 431

  
436 432
    return null;
437 433
    }
438

  
439
///////////////////////////////////////////////////////////////////////////////////////////////////
440

  
441
  public int[][] solution(int index, OperatingSystemInterface os)
442
    {
443
    if( mSolver==null )
444
      {
445
      mSolver = ImplementedTablebasesList.createPacked(os, ListObjects.SKEW_2.name() );
446
      }
447

  
448
    return mSolver!=null ? mSolver.solution(index,null,os) : null;
449
    }
450 434
}  
451 435

  
src/main/java/org/distorted/solvers/SolvingList.java
9 9

  
10 10
package org.distorted.solvers;
11 11

  
12
import static org.distorted.objectlib.metadata.ListObjects.*;
13

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

  
14 16
import org.distorted.main.R;
......
23 25

  
24 26
public enum SolvingList
25 27
{
26
  CUBE2          (MetadataCUBE_2.INDEX, SolverTablebaseCUBE2.class,  R.string.solver_cube2_title, R.string.solver_cube2_description, true),
27
  CUBE3_KOCIEMBA (MetadataCUBE_3.INDEX, SolverKociembaCUBE3.class , R.string.solver_cube3_title, R.string.solver_cube3_description, true),
28
  CU_232         (MetadataCU_232.INDEX, SolverTablebaseCU232.class, R.string.solver_cu232_title, R.string.solver_cu232_description, true),
29
  CU_323         (MetadataCU_323.INDEX, SolverTablebaseCU323.class, R.string.solver_cu323_title, R.string.solver_cu323_description, true),
30
  PYRAMINX       (MetadataPYRA_3.INDEX, SolverTablebasePYRA3.class, R.string.solver_pyra3_title, R.string.solver_pyra3_description, true),
31
  SKEWB          (MetadataSKEW_2.INDEX, SolverTablebaseSKEW2.class, R.string.solver_skew2_title, R.string.solver_skew2_description, true),
32
  PYRAMINX_DUO   (MetadataPDUO_2.INDEX, SolverTablebasePDUO2.class, R.string.solver_pduo2_title, R.string.solver_pduo2_description, true),
33
  IVY            (MetadataIVY_2.INDEX , SolverTablebaseIVY2.class , R.string.solver_ivy_title, R.string.solver_ivy_description, true),
34
  DIAMOND        (MetadataDIAM_2.INDEX, SolverTablebasePDIA3.class, R.string.solver_diam2_title, R.string.solver_diam2_description, true),
35
  JING2          (MetadataJING_2.INDEX, SolverTablebaseJING2.class, R.string.solver_jing2_title, R.string.solver_jing2_description, true),
36
  DINO6          (MetadataDINO_3.INDEX, SolverTablebaseDINO6.class, R.string.solver_dino6_title, R.string.solver_dino6_description, true),
37
  DINO4          (MetadataDIN4_3.INDEX, SolverTablebaseDINO4.class, R.string.solver_dino4_title, R.string.solver_dino4_description, true),
38
  PDIA           (MetadataPDIA_3.INDEX, SolverTablebasePDUO2.class, R.string.solver_pdia_title, R.string.solver_pdia_description, true),
28
  CUBE2          (CUBE_2.ordinal(), SolverTablebaseCUBE2.class, R.string.solver_cube2_title, R.string.solver_cube2_description, true),
29
  CUBE3_KOCIEMBA (CUBE_3.ordinal(), SolverKociembaCUBE3.class , R.string.solver_cube3_title, R.string.solver_cube3_description, true),
30
  CU232          (CU_232.ordinal(), SolverTablebaseCU232.class, R.string.solver_cu232_title, R.string.solver_cu232_description, true),
31
  CU323          (CU_323.ordinal(), SolverTablebaseCU323.class, R.string.solver_cu323_title, R.string.solver_cu323_description, true),
32
  PYRAMINX       (PYRA_3.ordinal(), SolverTablebasePYRA3.class, R.string.solver_pyra3_title, R.string.solver_pyra3_description, true),
33
  SKEWB          (SKEW_2.ordinal(), SolverTablebaseSKEW2.class, R.string.solver_skew2_title, R.string.solver_skew2_description, true),
34
  PYRAMINX_DUO   (PDUO_2.ordinal(), SolverTablebasePDUO2.class, R.string.solver_pduo2_title, R.string.solver_pduo2_description, true),
35
  IVY            (IVY_2.ordinal() , SolverTablebaseIVY2.class , R.string.solver_ivy_title, R.string.solver_ivy_description, true),
36
  DIAMOND        (DIAM_2.ordinal(), SolverTablebaseDIAM2.class, R.string.solver_diam2_title, R.string.solver_diam2_description, true),
37
  JING2          (JING_2.ordinal(), SolverTablebaseJING2.class, R.string.solver_jing2_title, R.string.solver_jing2_description, true),
38
  DINO6          (DINO_3.ordinal(), SolverTablebaseDINO6.class, R.string.solver_dino6_title, R.string.solver_dino6_description, true),
39
  DINO4          (DIN4_3.ordinal(), SolverTablebaseDINO4.class, R.string.solver_dino4_title, R.string.solver_dino4_description, true),
40
  PDIA           (PDIA_3.ordinal(), SolverTablebasePDIA3.class, R.string.solver_pdia_title, R.string.solver_pdia_description, true),
39 41
  ;
40 42

  
41 43
  public static final int NUM_OBJECTS = values().length;
42 44

  
43
  private final int mObject;
45
  private final int mObjectOrdinal;
44 46
  private final Class<? extends SolvingInterface> mClass;
45 47
  private final int mTitle;
46 48
  private final int mDescription;
......
71 73
  public static int getSolverOrdinal(int objectOrdinal)
72 74
    {
73 75
    for(int o=0; o<NUM_OBJECTS; o++)
74
      if( objects[o].mObject==objectOrdinal ) return o;
76
      if( objects[o].mObjectOrdinal==objectOrdinal ) return o;
75 77

  
76 78
    return -1;
77 79
    }
......
80 82

  
81 83
  SolvingList(int object, final Class<? extends SolvingInterface> clazz, int title, int descripton, boolean implemented)
82 84
    {
83
    mObject      = object;
84
    mClass       = clazz;
85
    mTitle       = title;
86
    mDescription = descripton;
87
    mImplemented = implemented;
85
    mObjectOrdinal= object;
86
    mClass        = clazz;
87
    mTitle        = title;
88
    mDescription  = descripton;
89
    mImplemented  = implemented;
88 90
    }
89 91

  
90 92
///////////////////////////////////////////////////////////////////////////////////////////////////
......
110 112

  
111 113
///////////////////////////////////////////////////////////////////////////////////////////////////
112 114

  
113
  public int getObject() { return mObject; }
115
  public int getObjectOrdinal() { return mObjectOrdinal; }
114 116
  public int getTitle() { return mTitle; }
115 117
  public int getDescription() { return mDescription; }
116 118
  public boolean isImplemented() { return mImplemented; }
......
130 132
        }
131 133
      else
132 134
        {
133
        android.util.Log.e("ImplementedSolversList", "ERROR! number of SolverInterface constructors="+cons.length);
135
        android.util.Log.e("SolvingList", "ERROR! number of SolverInterface constructors="+cons.length);
134 136
        }
135 137
      }
136 138
    catch(IllegalAccessException iae)
137 139
      {
138
      android.util.Log.e("ImplementedSolversList", "Illegal Access Exception: "+iae.getMessage());
140
      android.util.Log.e("SolvingList", "Illegal Access Exception: "+iae.getMessage());
139 141
      }
140 142
    catch(InstantiationException ie)
141 143
      {
142
      android.util.Log.e("ImplementedSolversList", "Instantiation Exception: "+ie.getMessage());
144
      android.util.Log.e("SolvingList", "Instantiation Exception: "+ie.getMessage());
143 145
      }
144 146
    catch(InvocationTargetException ite)
145 147
      {
146
      android.util.Log.e("ImplementedSolversList", "Invocation Target Exception: "+ite.getMessage());
148
      android.util.Log.e("SolvingList", "Invocation Target Exception: "+ite.getMessage());
147 149
      }
148 150

  
149 151
    return null;
src/main/java/org/distorted/solverui/ScreenSolver.java
9 9

  
10 10
package org.distorted.solverui;
11 11

  
12
import static org.distorted.objectlib.metadata.ListObjects.*;
13

  
12 14
import android.content.SharedPreferences;
13 15
import android.graphics.Bitmap;
14 16
import android.graphics.Canvas;
......
29 31
import org.distorted.main.R;
30 32
import org.distorted.objectlib.main.ObjectControl;
31 33
import org.distorted.objectlib.main.TwistyObject;
32
import org.distorted.objectlib.metadata.MetadataBALL_4;
33
import org.distorted.objectlib.metadata.MetadataCRYS_3;
34
import org.distorted.objectlib.metadata.MetadataDIAM_2;
35
import org.distorted.objectlib.metadata.MetadataDIAM_3;
36
import org.distorted.objectlib.metadata.MetadataDIAM_4;
37
import org.distorted.objectlib.metadata.MetadataDIN4_3;
38
import org.distorted.objectlib.metadata.MetadataICOS_2;
39
import org.distorted.objectlib.metadata.MetadataJING_2;
40
import org.distorted.objectlib.metadata.MetadataKILO_3;
41
import org.distorted.objectlib.metadata.MetadataKILO_5;
42
import org.distorted.objectlib.metadata.MetadataMEGA_3;
43
import org.distorted.objectlib.metadata.MetadataMEGA_5;
44
import org.distorted.objectlib.metadata.MetadataMORP_2;
45
import org.distorted.objectlib.metadata.MetadataMORP_3;
46
import org.distorted.objectlib.metadata.MetadataMORP_4;
47
import org.distorted.objectlib.metadata.MetadataPDIA_3;
48
import org.distorted.objectlib.metadata.MetadataPDUO_2;
49
import org.distorted.objectlib.metadata.MetadataPENT_2;
50
import org.distorted.objectlib.metadata.MetadataPYRA_3;
51
import org.distorted.objectlib.metadata.MetadataPYRA_4;
52
import org.distorted.objectlib.metadata.MetadataPYRA_5;
53
import org.distorted.objectlib.metadata.MetadataSTAR_3;
54
import org.distorted.objectlib.metadata.MetadataTRAJ_3;
55
import org.distorted.objectlib.metadata.MetadataTRAJ_4;
56
import org.distorted.objectlib.shape.ShapeColors;
57
import org.distorted.objectlib.shape.ShapeDiamond;
58
import org.distorted.objectlib.shape.ShapeDodecahedron;
59
import org.distorted.objectlib.shape.ShapeHexahedron;
60
import org.distorted.objectlib.shape.ShapeIcosahedron;
61
import org.distorted.objectlib.shape.ShapeOctahedron;
62
import org.distorted.objectlib.shape.ShapeTetrahedron;
34
import org.distorted.objectlib.shape.*;
63 35
import org.distorted.solvers.SolvingList;
64 36
import org.distorted.solvers.SolvingThread;
65 37

  
......
108 80

  
109 81
    int solverIndex= act.getSolverOrdinal();
110 82
    mList = SolvingList.getSolver(solverIndex);
111
    int currentObject = mList.getObject();
83
    int currentObject = mList.getObjectOrdinal();
112 84
    control.solveOnly();
113 85
    generateFaceColors(currentObject);
114 86

  
......
164 136
    {
165 137
    mColorMode = MODE_NORMAL;
166 138

  
167
    if( object==MetadataPYRA_3.INDEX ||
168
        object==MetadataPYRA_4.INDEX ||
169
        object==MetadataPYRA_5.INDEX ||
170
        object==MetadataPDUO_2.INDEX ||
171
        object==MetadataJING_2.INDEX ||
172
        object==MetadataMORP_2.INDEX ||
173
        object==MetadataMORP_3.INDEX ||
174
        object==MetadataMORP_4.INDEX  )
139
    if( object==PYRA_3.ordinal() ||
140
        object==PYRA_4.ordinal() ||
141
        object==PYRA_5.ordinal() ||
142
        object==PDUO_2.ordinal() ||
143
        object==JING_2.ordinal() ||
144
        object==MORP_2.ordinal() ||
145
        object==MORP_3.ordinal() ||
146
        object==MORP_4.ordinal()  )
175 147
      {
176 148
      mNumColors  = ShapeTetrahedron.NUM_FACES;
177 149
      mFaceColors = ShapeTetrahedron.FACE_COLORS;
178 150
      }
179
    else if( object==MetadataDIAM_2.INDEX ||
180
             object==MetadataDIAM_3.INDEX ||
181
             object==MetadataDIAM_4.INDEX ||
182
             object==MetadataTRAJ_3.INDEX ||
183
             object==MetadataTRAJ_4.INDEX ||
184
             object==MetadataPDIA_3.INDEX  )
151
    else if( object==DIAM_2.ordinal() ||
152
             object==DIAM_3.ordinal() ||
153
             object==DIAM_4.ordinal() ||
154
             object==TRAJ_3.ordinal() ||
155
             object==TRAJ_4.ordinal() ||
156
             object==PDIA_3.ordinal()  )
185 157
      {
186 158
      mNumColors  = ShapeOctahedron.NUM_FACES;
187 159
      mFaceColors = ShapeOctahedron.FACE_COLORS;
188 160
      }
189
    else if( object==MetadataCRYS_3.INDEX ||
190
             object==MetadataSTAR_3.INDEX ||
191
             object==MetadataPENT_2.INDEX ||
192
             object==MetadataKILO_3.INDEX ||
193
             object==MetadataKILO_5.INDEX ||
194
             object==MetadataMEGA_3.INDEX ||
195
             object==MetadataMEGA_5.INDEX  )
161
    else if( object==CRYS_3.ordinal() ||
162
             object==STAR_3.ordinal() ||
163
             object==PENT_2.ordinal() ||
164
             object==KILO_3.ordinal() ||
165
             object==KILO_5.ordinal() ||
166
             object==MEGA_3.ordinal() ||
167
             object==MEGA_5.ordinal()  )
196 168
      {
197 169
      mNumColors  = ShapeDodecahedron.NUM_FACES;
198 170
      mFaceColors = ShapeDodecahedron.FACE_COLORS;
199 171
      }
200
    else if( object==MetadataBALL_4.INDEX )
172
    else if( object==BALL_4.ordinal() )
201 173
      {
202 174
      mNumColors  = ShapeDiamond.NUM_FACES;
203 175
      mFaceColors = ShapeDiamond.FACE_COLORS;
204 176
      }
205
    else if( object==MetadataICOS_2.INDEX )
177
    else if( object==ICOS_2.ordinal() )
206 178
      {
207 179
      mNumColors  = ShapeIcosahedron.NUM_FACES;
208 180
      mFaceColors = ShapeIcosahedron.FACE_COLORS;
209 181
      }
210
    else if( object==MetadataDIN4_3.INDEX )
182
    else if( object==DIN4_3.ordinal() )
211 183
      {
212 184
      mNumColors  = 4;
213 185
      mFaceColors = new int[] { ShapeColors.COLOR_YELLOW, ShapeColors.COLOR_RED, ShapeColors.COLOR_BLUE, ShapeColors.COLOR_WHITE};
src/main/java/org/distorted/solverui/SolverActivity.java
62 62
      Bundle b = getIntent().getExtras();
63 63
      mObjectOrdinal = b!=null ? b.getInt("obj") : 0;
64 64
      RubikObject object = RubikObjectList.getObject(mObjectOrdinal);
65
      int objectIndex = object==null ? -1 : object.getIndex();
66
      mSolverOrdinal = SolvingList.getSolverOrdinal(objectIndex);
65
      mSolverOrdinal = object==null ? -1 : object.getSolverOrdinal();
67 66
      mDisplayMessageDialog = true;
68 67

  
69 68
      computeScreenDimensions();

Also available in: Unified diff