commit 2ee27c1336be2af85898c256a9bbadf0ce6d52bf
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Mar 30 13:15:47 2023 +0200

    Dino4 solver: progress.

diff --git a/src/main/java/org/distorted/solvers/SolverDino4.java b/src/main/java/org/distorted/solvers/SolverDino4.java
index 47081c69..3cea3b9b 100644
--- a/src/main/java/org/distorted/solvers/SolverDino4.java
+++ b/src/main/java/org/distorted/solvers/SolverDino4.java
@@ -9,11 +9,14 @@
 
 package org.distorted.solvers;
 
+import static org.distorted.objectlib.main.TwistyObject.*;
+
 import android.content.res.Resources;
 
 import org.distorted.main.R;
 import org.distorted.objectlib.main.ObjectSignatures;
 import org.distorted.objectlib.main.TwistyObject;
+import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.tablebases.ImplementedTablebasesList;
 import org.distorted.objectlib.tablebases.TBDino4;
 import org.distorted.objectlib.tablebases.TablebasesAbstract;
@@ -48,26 +51,38 @@ public class SolverDino4 extends SolverTablebase
 
   private int checkEdges(int[][] edges)
     {
-    int numBlue=0,numRed=0, numYellow=0, numWhite=0;
+    int numB=0,numR=0, numY=0, numW=0;
+    int indB=0,indY=0, indW=0, indR=0;
+
+    int[] hexColors = ShapeHexahedron.FACE_COLORS;
+
+    for(int i=0; i<6; i++)
+      {
+      int color = hexColors[i];
+
+      if( color==COLOR_WHITE  ) indW = i;
+      if( color==COLOR_YELLOW ) indY = i;
+      if( color==COLOR_RED    ) indR = i;
+      if( color==COLOR_BLUE   ) indB = i;
+      }
 
     for(int i=0; i<12; i++)
       {
       int e = edges[0][i];
 
       if( e==edges[1][i] )
-        switch(e)
-          {
-          case 0: numYellow++; break;
-          case 1: numWhite++ ; break;
-          case 2: numBlue++  ; break;
-          case 3: numRed++   ; break;
-          }
+        {
+        if( e==indY ) numY++;
+        if( e==indW ) numW++;
+        if( e==indR ) numR++;
+        if( e==indB ) numB++;
+        }
       }
 
-    if( numYellow!=3 ) { mErrorColor=0; return ERROR_EDGE_THREE; }
-    if( numWhite !=3 ) { mErrorColor=1; return ERROR_EDGE_THREE; }
-    if( numBlue  !=3 ) { mErrorColor=2; return ERROR_EDGE_THREE; }
-    if( numRed   !=3 ) { mErrorColor=3; return ERROR_EDGE_THREE; }
+    if( numY !=3 ) { mErrorColor=0; return ERROR_EDGE_THREE; }
+    if( numW !=3 ) { mErrorColor=1; return ERROR_EDGE_THREE; }
+    if( numB !=3 ) { mErrorColor=2; return ERROR_EDGE_THREE; }
+    if( numR !=3 ) { mErrorColor=3; return ERROR_EDGE_THREE; }
 
     return 0;
     }
