Project

General

Profile

« Previous | Next » 

Revision 20931cf6

Added by Leszek Koltunski over 4 years ago

Progress making the Solver state more abstract.

View differences:

src/main/java/org/distorted/objects/RubikCube.java
228 228

  
229 229
///////////////////////////////////////////////////////////////////////////////////////////////////
230 230

  
231
  public String retString()
231
  public String retObjectString()
232 232
    {
233 233
    String ret="UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB";
234 234
/*
src/main/java/org/distorted/objects/RubikObject.java
567 567
    return mList;
568 568
    }
569 569

  
570
///////////////////////////////////////////////////////////////////////////////////////////////////
571

  
572
  public String retObjectString()
573
    {
574
    return retString();
575
    }
576

  
577 570
///////////////////////////////////////////////////////////////////////////////////////////////////
578 571

  
579 572
  abstract float getScreenRatio();
......
581 574
  abstract Static3D[] getCubitPositions(int size);
582 575
  abstract float[] getLegalQuats();
583 576
  abstract int getNumFaces();
584
  abstract String retString();
585 577
  abstract MeshBase createCubitMesh(int cubit, int vertices);
586 578
  abstract void createFaceTexture(Canvas canvas, Paint paint, int face, int left, int top, int side);
587 579
  public abstract Static3D[] getRotationAxis();
588 580
  public abstract int getBasicAngle();
589 581
  public abstract float returnMultiplier();
590 582
  public abstract float returnRotationFactor(float offset);
583
  public abstract String retObjectString();
591 584
  }
src/main/java/org/distorted/objects/RubikObjectList.java
25 25
import org.distorted.library.type.Static4D;
26 26
import org.distorted.main.R;
27 27

  
28
import java.lang.reflect.Field;
29

  
28 30
///////////////////////////////////////////////////////////////////////////////////////////////////
29 31

  
30 32
public enum RubikObjectList
......
36 38
                       {4 , R.drawable.cube4} ,
37 39
                       {5 , R.drawable.cube5}
38 40
                     },
41
         RubikCube.class,
39 42
         new RubikCubeMovement()
40 43
       ),
41 44

  
......
45 48
                       {4 , R.drawable.pyra4} ,
46 49
                       {5 , R.drawable.pyra5}
47 50
                     },
51
         RubikPyraminx.class,
48 52
         new RubikPyraminxMovement()
49 53
       ),
50 54
  ;
......
53 57
  public static final int MAX_SIZE;
54 58

  
55 59
  private final int[] mObjectSizes, mIconIDs;
56
  final RubikObjectMovement mObjectMovementClass;
60
  private final Class<? extends RubikObject> mObjectClass;
61
  private final RubikObjectMovement mObjectMovementClass;
57 62
  private static final RubikObjectList[] objects;
58 63
  private static int mNumAll;
59 64

  
......
213 218

  
214 219
///////////////////////////////////////////////////////////////////////////////////////////////////
215 220

  
216
  RubikObjectList(int[][] info, RubikObjectMovement movement)
221
  public static int[] retFaceColors(RubikObjectList object)
222
    {
223
    Field field;
224
    int[] faceColors=null;
225

  
226
    try
227
      {
228
      field = object.mObjectClass.getDeclaredField("FACE_COLORS");
229
      field.setAccessible(true);
230
      Object obj = field.get(null);
231
      faceColors = (int[]) obj;
232
      }
233
    catch(NoSuchFieldException ex)
234
      {
235
      android.util.Log.e("RubikObjectList", object.mObjectClass.getSimpleName()+": no such field exception getting field: "+ex.getMessage());
236
      }
237
    catch(IllegalAccessException ex)
238
      {
239
      android.util.Log.e("RubikObjectList", object.mObjectClass.getSimpleName()+": illegal access exception getting field: "+ex.getMessage());
240
      }
241

  
242
    return faceColors;
243
    }
244

  
245
///////////////////////////////////////////////////////////////////////////////////////////////////
246

  
247
  RubikObjectList(int[][] info, Class<? extends RubikObject> object , RubikObjectMovement movement)
217 248
    {
218 249
    int length = info.length;
219 250

  
......
226 257
      mIconIDs[i]     = info[i][1];
227 258
      }
228 259

  
260
    mObjectClass         = object;
229 261
    mObjectMovementClass = movement;
230 262
    }
231 263

  
src/main/java/org/distorted/objects/RubikPyraminx.java
323 323
///////////////////////////////////////////////////////////////////////////////////////////////////
324 324
// TODO
325 325

  
326
  public String retString()
326
  public String retObjectString()
327 327
    {
328 328
    return "";
329 329
    }
src/main/java/org/distorted/states/RubikStateSolver.java
78 78
    RubikStatePlay play = (RubikStatePlay)RubikState.PLAY.getStateClass();
79 79
    play.setObjectAndSize(RubikObjectList.CUBE,3);
80 80

  
81
int[] colors = RubikObjectList.retFaceColors(RubikObjectList.CUBE);
82

  
83
if( colors != null )
84
  {
85
  int len = colors.length;
86

  
87
  android.util.Log.e("solver", "retColors len="+len+" first: "+colors[0]);
88
  }
89
else
90
  {
91
  android.util.Log.e("solver", "retColors null");
92
  }
93

  
81 94
    DisplayMetrics metrics = act.getResources().getDisplayMetrics();
82 95
    final float scale = metrics.density;
83 96

  

Also available in: Unified diff