Browse Source

Add better hash for macrostate too

Baglio Tabifata 4 years ago
parent
commit
e5ba108fe6
2 changed files with 20 additions and 3 deletions
  1. 9 3
      src/net/hkzlab/dupal/App.java
  2. 11 0
      src/net/hkzlab/palanalisys/MacroState.java

+ 9 - 3
src/net/hkzlab/dupal/App.java

@@ -2,6 +2,7 @@ package net.hkzlab.dupal;
 
 import net.hkzlab.dupal.boardio.DuPALManager;
 import net.hkzlab.dupal.dupalproto.DuPALProto;
+import net.hkzlab.palanalisys.MacroState;
 import net.hkzlab.palanalisys.SubState;
 
 public class App {
@@ -30,8 +31,13 @@ public class App {
             dpm.cleanup();
         }
         */
-        SubState ss = new SubState("TEST", new byte[] {-1, 0, -1, 0, -1, -1});
-        System.out.println(ss.toString());
-        System.out.println(ss.hashCode());
+        //SubState ss = new SubState("TEST", new byte[] {-1, 0, -1, 0, -1, -1});
+        //System.out.println(ss.toString());
+        //System.out.println(ss.hashCode());
+
+        MacroState ms = new MacroState("TEST", new boolean[] {true, true, false, true}, 3);
+        System.out.println(ms.toString());
+        System.out.println(ms.hashCode());
+
     }
 }

+ 11 - 0
src/net/hkzlab/palanalisys/MacroState.java

@@ -49,4 +49,15 @@ public class MacroState {
 
         return strBuf.toString();
     }
+
+    @Override
+    public int hashCode() {
+        int hash = 0;
+
+        for(int idx = 0; idx < rpin_status.length; idx++) {
+            hash ^= ((rpin_status[idx] ? 1 : 0) << (idx % 32));
+        }
+
+        return hash;
+    }
 }