Revision 030f1bf4
Added by Leszek Koltunski over 2 years ago
| src/main/java/org/distorted/solvers/SolverSkewbDiamond.java | ||
|---|---|---|
| 276 | 276 |
|
| 277 | 277 |
private void getCorners(TwistyObject object, int[][] corners) |
| 278 | 278 |
{
|
| 279 |
corners[0][0] = object.getCubitFaceStickerIndex( 0,0); // FR
|
|
| 280 |
corners[0][1] = object.getCubitFaceStickerIndex( 0,1);
|
|
| 281 |
corners[0][2] = object.getCubitFaceStickerIndex( 0,5);
|
|
| 282 |
corners[0][3] = object.getCubitFaceStickerIndex( 0,4);
|
|
| 283 |
|
|
| 284 |
corners[1][0] = object.getCubitFaceStickerIndex( 1,1); // BR
|
|
| 285 |
corners[1][1] = object.getCubitFaceStickerIndex( 1,2);
|
|
| 286 |
corners[1][2] = object.getCubitFaceStickerIndex( 1,6);
|
|
| 287 |
corners[1][3] = object.getCubitFaceStickerIndex( 1,5);
|
|
| 288 |
|
|
| 289 |
corners[2][0] = object.getCubitFaceStickerIndex( 2,2); // BL
|
|
| 290 |
corners[2][1] = object.getCubitFaceStickerIndex( 2,3);
|
|
| 291 |
corners[2][2] = object.getCubitFaceStickerIndex( 2,7);
|
|
| 292 |
corners[2][3] = object.getCubitFaceStickerIndex( 2,6);
|
|
| 293 |
|
|
| 294 |
corners[3][0] = object.getCubitFaceStickerIndex( 3,3); // FL
|
|
| 295 |
corners[3][1] = object.getCubitFaceStickerIndex( 3,0);
|
|
| 296 |
corners[3][2] = object.getCubitFaceStickerIndex( 3,4);
|
|
| 297 |
corners[3][3] = object.getCubitFaceStickerIndex( 3,7);
|
|
| 279 |
corners[0][0] = object.getCubitFaceStickerIndex( 0,5); // FR
|
|
| 280 |
corners[0][1] = object.getCubitFaceStickerIndex( 0,4);
|
|
| 281 |
corners[0][2] = object.getCubitFaceStickerIndex( 0,0);
|
|
| 282 |
corners[0][3] = object.getCubitFaceStickerIndex( 0,1);
|
|
| 283 |
|
|
| 284 |
corners[1][0] = object.getCubitFaceStickerIndex( 1,2); // BR
|
|
| 285 |
corners[1][1] = object.getCubitFaceStickerIndex( 1,6);
|
|
| 286 |
corners[1][2] = object.getCubitFaceStickerIndex( 1,5);
|
|
| 287 |
corners[1][3] = object.getCubitFaceStickerIndex( 1,1);
|
|
| 288 |
|
|
| 289 |
corners[2][0] = object.getCubitFaceStickerIndex( 2,7); // BL
|
|
| 290 |
corners[2][1] = object.getCubitFaceStickerIndex( 2,6);
|
|
| 291 |
corners[2][2] = object.getCubitFaceStickerIndex( 2,2);
|
|
| 292 |
corners[2][3] = object.getCubitFaceStickerIndex( 2,3);
|
|
| 293 |
|
|
| 294 |
corners[3][0] = object.getCubitFaceStickerIndex( 3,0); // FL
|
|
| 295 |
corners[3][1] = object.getCubitFaceStickerIndex( 3,4);
|
|
| 296 |
corners[3][2] = object.getCubitFaceStickerIndex( 3,7);
|
|
| 297 |
corners[3][3] = object.getCubitFaceStickerIndex( 3,3);
|
|
| 298 | 298 |
|
| 299 | 299 |
corners[4][0] = object.getCubitFaceStickerIndex( 4,0); // U |
| 300 | 300 |
corners[4][1] = object.getCubitFaceStickerIndex( 4,3); |
| 301 | 301 |
corners[4][2] = object.getCubitFaceStickerIndex( 4,2); |
| 302 | 302 |
corners[4][3] = object.getCubitFaceStickerIndex( 4,1); |
| 303 | 303 |
|
| 304 |
corners[5][0] = object.getCubitFaceStickerIndex( 5,6); // D
|
|
| 305 |
corners[5][1] = object.getCubitFaceStickerIndex( 5,7);
|
|
| 306 |
corners[5][2] = object.getCubitFaceStickerIndex( 5,4);
|
|
| 307 |
corners[5][3] = object.getCubitFaceStickerIndex( 5,5);
|
|
| 304 |
corners[5][0] = object.getCubitFaceStickerIndex( 5,5); // D
|
|
| 305 |
corners[5][1] = object.getCubitFaceStickerIndex( 5,6);
|
|
| 306 |
corners[5][2] = object.getCubitFaceStickerIndex( 5,7);
|
|
| 307 |
corners[5][3] = object.getCubitFaceStickerIndex( 5,4);
|
|
| 308 | 308 |
} |
| 309 | 309 |
|
| 310 | 310 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 331 | 331 |
getCorners(object,corners); |
| 332 | 332 |
getCenters(object,centers); |
| 333 | 333 |
|
| 334 |
for(int j=0; j<8; j++) |
|
| 335 |
{
|
|
| 336 |
android.util.Log.e("D", "center "+j+" : "+centers[j]);
|
|
| 337 |
} |
|
| 338 |
|
|
| 334 | 339 |
int result1 = checkAllCentersPresent(centers); |
| 335 | 340 |
if( result1<0 ) return result1; |
| 336 | 341 |
|
| ... | ... | |
| 349 | 354 |
if( !even2 ) return ERROR_TWO_CENTERS; |
| 350 | 355 |
|
| 351 | 356 |
int[] corners_twist = getCornersTwist(corners_perm, corners); |
| 357 |
|
|
| 358 |
android.util.Log.e("D", "faces: "+mFaceColors[0]+" "+mFaceColors[1]+" "+mFaceColors[2]+" "
|
|
| 359 |
+mFaceColors[3]+" "+mFaceColors[4]+" "+mFaceColors[5]+" "+mFaceColors[6]+" "+mFaceColors[7]); |
|
| 360 |
|
|
| 361 |
android.util.Log.e("D", "corn perm: "+corners_perm[0]+" "+corners_perm[1]+" "+corners_perm[2]+" "
|
|
| 362 |
+corners_perm[3]+" "+corners_perm[4]+" "+corners_perm[5]); |
|
| 363 |
|
|
| 364 |
android.util.Log.e("D", "corn twist: "+corners_twist[0]+" "+corners_twist[1]+" "+corners_twist[2]+" "
|
|
| 365 |
+corners_twist[3]+" "+corners_twist[4]+" "+corners_twist[5]); |
|
| 366 |
|
|
| 352 | 367 |
int totalTwist = getTotalTwist(corners_twist); |
| 353 | 368 |
if( totalTwist<0 ) return ERROR_CORNER_TWIST; |
| 354 | 369 |
|
| ... | ... | |
| 400 | 415 |
|
| 401 | 416 |
private int getColorIndex2(int face) |
| 402 | 417 |
{
|
| 403 |
switch(mFaceColors[face])
|
|
| 418 |
switch(face)
|
|
| 404 | 419 |
{
|
| 405 | 420 |
case 0: return R.string.color_violet2; |
| 406 | 421 |
case 1: return R.string.color_grey2; |
| ... | ... | |
| 470 | 485 |
if( mSolver==null ) |
| 471 | 486 |
{
|
| 472 | 487 |
mSolver = ImplementedTablebasesList.createUnpacked(ObjectType.DIAM_2); |
| 473 |
if( mSolver!=null ) mSolver.createTablebase(); |
|
| 488 |
// if( mSolver!=null ) mSolver.createTablebase();
|
|
| 474 | 489 |
} |
| 475 | 490 |
|
| 476 | 491 |
return mSolver!=null ? mSolver.solution(index) : null; |
Also available in: Unified diff
Progress with Skewb Diamond solver.