Fixing computer play
[vchess.git] / client / src / playCompMove.js
index d6b0cea..062eae3 100644 (file)
@@ -1,25 +1,26 @@
+// TODO: https://github.com/webpack-contrib/worker-loader
+// https://stackoverflow.com/questions/48713072/how-to-get-js-function-into-webworker-via-importscripts
 // For asynchronous computer move search
-onmessage = function(e)
+
+//self.addEventListener('message', (e) =>
+onmessage = async function(e)
 {
-       switch (e.data[0])
-       {
-               case "scripts":
-                       self.importScripts(
-                               '/javascripts/base_rules.js',
-                               '/javascripts/utils/array.js',
-                               '/javascripts/variants/' + e.data[1] + '.js');
-                       self.V = eval(e.data[1] + "Rules");
-                       break;
-               case "init":
-                       const fen = e.data[1];
-                       self.vr = new VariantRules(fen);
-                       break;
-               case "newmove":
-                       self.vr.play(e.data[1]);
-                       break;
-               case "askmove":
-                       const compMove = self.vr.getComputerMove();
-                       postMessage(compMove);
-                       break;
-       }
+  switch (e.data[0])
+  {
+    case "scripts":
+      const vModule = await import("@/variants/" + e.data[1] + ".js");
+      self.V = vModule.VariantRules;
+      break;
+    case "init":
+      const fen = e.data[1];
+      self.vr = new self.V(fen);
+      break;
+    case "newmove":
+      self.vr.play(e.data[1]);
+      break;
+    case "askmove":
+      const compMove = self.vr.getComputerMove();
+      postMessage(compMove);
+      break;
+  }
 }