Revision e43fd306
Added by Leszek Koltunski over 2 years ago
| src/main/java/org/distorted/solvers/SolverPyraminx.java | ||
|---|---|---|
| 347 | 347 |  | 
| 348 | 348 | int result4 = checkAgreement(faces1,faces2); | 
| 349 | 349 | if( result4<0 ) return result4; | 
| 350 | /* | |
| 351 | for(int i=0; i<4; i++) | |
| 352 |   android.util.Log.e("D", "face "+i+" : "+faces1[i]);
 | |
| 353 | */ | |
| 350 |  | |
| 354 | 351 | for(int i=0; i<4; i++) | 
| 355 | 352 |       {
 | 
| 356 | 353 | corner_twist[i] = computePieceTwist(i,corners[i],faces1); | 
| 357 |  | |
| 358 |       //android.util.Log.e("D", "corner twist "+i+" : "+corner_twist[i]);
 | |
| 359 |  | |
| 360 | 354 | if( corner_twist[i]<0 ) return ERROR_CORNERS_CANNOT; | 
| 361 | 355 | } | 
| 362 | 356 |  | 
| ... | ... | |
| 365 | 359 | vertex_twist[i] = computePieceTwist(i,vertices[i],faces1); | 
| 366 | 360 | if( vertex_twist[i]<0 ) return ERROR_VERTICES_CANNOT; | 
| 367 | 361 | } | 
| 368 | /* | |
| 369 | for(int i=0; i<6; i++) | |
| 370 |   android.util.Log.e("D", "edge "+i+" : "+edges[i][0]+" "+edges[i][1]);
 | |
| 371 | */ | |
| 372 | 362 |  | 
| 373 | 363 | int[] quats = computeEdgeQuats(edges); | 
| 374 | 364 | int[] permutation = new int[6]; | 
| ... | ... | |
| 377 | 367 | if( !even ) return ERROR_TWO_EDGES; | 
| 378 | 368 | int[] edge_twist = new int[6]; | 
| 379 | 369 | TablebasesPyraminx.getEdgeTwist(edge_twist,quats,0); | 
| 380 | /* | |
| 381 | for(int i=0; i<6; i++) | |
| 382 |   android.util.Log.e("D", "q edge "+i+" : "+quats[i]);
 | |
| 383 |  | |
| 384 | for(int i=0; i<6; i++) | |
| 385 |   android.util.Log.e("D", "p edge "+i+" : "+permutation[i]);
 | |
| 386 | */ | |
| 387 |  | |
| 388 | /* | |
| 389 | for(int i=0; i<6; i++) | |
| 390 |   android.util.Log.e("D", "edge twist "+i+" : "+edge_twist[i]);
 | |
| 391 | */ | |
| 370 |  | |
| 392 | 371 | int totalEdgeTwist=0; | 
| 393 | 372 | for(int i=0; i<6; i++) totalEdgeTwist += edge_twist[i]; | 
| 394 | 373 | if( (totalEdgeTwist%2)!=0 ) return ERROR_EDGE_TWISTED; | 
| ... | ... | |
| 397 | 376 | int edgeTwist = edge_twist[0]+ 2*(edge_twist[1]+ 2*(edge_twist[2]+ 2*(edge_twist[3]+ 2*edge_twist[4]))); | 
| 398 | 377 | int perm_num = TablebaseHelpers.computeEvenPermutationNum(permutation); | 
| 399 | 378 |  | 
| 400 | //android.util.Log.e("D", "vertexTwist: : "+vertexTwist+" edgeTwist: "+edgeTwist+" perm_num: "+perm_num );
 | |
| 401 |  | |
| 402 | 379 | return vertexTwist + 81*(edgeTwist + 32*perm_num); | 
| 403 | 380 | } | 
| 404 | 381 |  | 
Also available in: Unified diff
Pyraminx solver: tablebase working now (tipless, tips to be added in the SolverPyraminx class)