commit d5ca9927744cf90c3baeddff3677d68e773e4035
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jul 30 14:37:59 2021 +0200

    Finish implementing Jing's 'isSolved'

diff --git a/src/main/java/org/distorted/objects/ObjectList.java b/src/main/java/org/distorted/objects/ObjectList.java
index 7172c965..c65bdd60 100644
--- a/src/main/java/org/distorted/objects/ObjectList.java
+++ b/src/main/java/org/distorted/objects/ObjectList.java
@@ -51,7 +51,7 @@ public enum ObjectList
 
   JING (
          new int[][] {
-                       {2 , 10, 10, R.raw.jing, R.drawable.ui_small_jing2, R.drawable.ui_medium_jing2, R.drawable.ui_big_jing2, R.drawable.ui_huge_jing2} ,
+                       {2 , 11, 11, R.raw.jing, R.drawable.ui_small_jing2, R.drawable.ui_medium_jing2, R.drawable.ui_big_jing2, R.drawable.ui_huge_jing2} ,
                      },
          TwistyJing.class,
          new MovementJing(),
diff --git a/src/main/java/org/distorted/objects/TwistyJing.java b/src/main/java/org/distorted/objects/TwistyJing.java
index 6e3464e7..6804f3b7 100644
--- a/src/main/java/org/distorted/objects/TwistyJing.java
+++ b/src/main/java/org/distorted/objects/TwistyJing.java
@@ -437,26 +437,33 @@ public class TwistyJing extends TwistyObject
 // b) its 4 face cubits might also be rotated along the axis perpendicular to the face.
 //
 // So:
-// [10] might be extra QUAT[] or QUAT[]
-// [11] might be extra QUAT[] or QUAT[]
-// [12] might be extra QUAT[] or QUAT[]
-// [13] might be extra QUAT[] or QUAT[]
+// [10] might be extra QUAT[4] or QUAT[8]
+// [11] might be extra QUAT[5] or QUAT[9]
+// [12] might be extra QUAT[2] or QUAT[6]
+// [13] might be extra QUAT[3] or QUAT[7]
 
   public boolean isSolved()
     {
-    int index = CUBITS[0].mQuatIndex;
-
-    if( CUBITS[1].mQuatIndex != index ) return false;
-    if( CUBITS[2].mQuatIndex != index ) return false;
-    if( CUBITS[3].mQuatIndex != index ) return false;
-    if( CUBITS[4].mQuatIndex != index ) return false;
-    if( CUBITS[5].mQuatIndex != index ) return false;
-    if( CUBITS[6].mQuatIndex != index ) return false;
-    if( CUBITS[7].mQuatIndex != index ) return false;
-    if( CUBITS[8].mQuatIndex != index ) return false;
-    if( CUBITS[9].mQuatIndex != index ) return false;
-
-    // TODO: face cubits
+    int q1, q = CUBITS[0].mQuatIndex;
+
+    if( CUBITS[1].mQuatIndex != q ) return false;
+    if( CUBITS[2].mQuatIndex != q ) return false;
+    if( CUBITS[3].mQuatIndex != q ) return false;
+    if( CUBITS[4].mQuatIndex != q ) return false;
+    if( CUBITS[5].mQuatIndex != q ) return false;
+    if( CUBITS[6].mQuatIndex != q ) return false;
+    if( CUBITS[7].mQuatIndex != q ) return false;
+    if( CUBITS[8].mQuatIndex != q ) return false;
+    if( CUBITS[9].mQuatIndex != q ) return false;
+
+    q1 = CUBITS[10].mQuatIndex;
+    if( q1!=q && q1!=mulQuat(q,4) && q1!=mulQuat(q,8) ) return false;
+    q1 = CUBITS[11].mQuatIndex;
+    if( q1!=q && q1!=mulQuat(q,5) && q1!=mulQuat(q,9) ) return false;
+    q1 = CUBITS[12].mQuatIndex;
+    if( q1!=q && q1!=mulQuat(q,2) && q1!=mulQuat(q,6) ) return false;
+    q1 = CUBITS[13].mQuatIndex;
+    if( q1!=q && q1!=mulQuat(q,3) && q1!=mulQuat(q,7) ) return false;
 
     return true;
     }
@@ -487,6 +494,6 @@ public class TwistyJing extends TwistyObject
 
   public int getComplexity(int numLayers)
     {
-    return 3;
+    return 4;
     }
 }
diff --git a/src/main/java/org/distorted/objects/TwistySkewb.java b/src/main/java/org/distorted/objects/TwistySkewb.java
index 9d2b3c9b..531cd56a 100644
--- a/src/main/java/org/distorted/objects/TwistySkewb.java
+++ b/src/main/java/org/distorted/objects/TwistySkewb.java
@@ -714,8 +714,8 @@ public class TwistySkewb extends TwistyObject
     {
     switch(numLayers)
       {
-      case 2: return 5;
-      case 3: return 9;
+      case 2: return 4;
+      case 3: return 8;
       }
     return 5;
     }
