diff --git a/64 Nicomachus/javascript/nicomachus.html b/64 Nicomachus/javascript/nicomachus.html new file mode 100644 index 00000000..2fe069f8 --- /dev/null +++ b/64 Nicomachus/javascript/nicomachus.html @@ -0,0 +1,9 @@ + + +NICOMACHUS + + +

+
+
+
diff --git a/64 Nicomachus/javascript/nicomachus.js b/64 Nicomachus/javascript/nicomachus.js
new file mode 100644
index 00000000..7abe1d51
--- /dev/null
+++ b/64 Nicomachus/javascript/nicomachus.js	
@@ -0,0 +1,91 @@
+// NICOMACHUS
+//
+// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
+//
+
+function print(str)
+{
+    document.getElementById("output").appendChild(document.createTextNode(str));
+}
+
+function input()
+{
+    var input_element;
+    var input_str;
+    
+    return new Promise(function (resolve) {
+                       input_element = document.createElement("INPUT");
+                       
+                       print("? ");
+                       input_element.setAttribute("type", "text");
+                       input_element.setAttribute("length", "50");
+                       document.getElementById("output").appendChild(input_element);
+                       input_element.focus();
+                       input_str = undefined;
+                       input_element.addEventListener("keydown", function (event) {
+                                                      if (event.keyCode == 13) {
+                                                      input_str = input_element.value;
+                                                      document.getElementById("output").removeChild(input_element);
+                                                      print(input_str);
+                                                      print("\n");
+                                                      resolve(input_str);
+                                                      }
+                                                      });
+                       });
+}
+
+function tab(space)
+{
+    var str = "";
+    while (space-- > 0)
+        str += " ";
+    return str;
+}
+
+var str;
+var b;
+
+// Main program
+async function main()
+{
+    print(tab(33) + "NICOMA\n");
+    print(tab(15) + "CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY\n");
+    print("\n");
+    print("\n");
+    print("\n");
+    print("BOOMERANG PUZZLE FROM ARITHMETICA OF NICOMACHUS -- A.D. 90!\n");
+    while (1) {
+        print("\n");
+        print("PLEASE THINK OF A NUMBER BETWEEN 1 AND 100.\n");
+        print("YOUR NUMBER DIVIDED BY 3 HAS A REMAINDER OF");
+        a = parseInt(await input());
+        print("YOUR NUMBER DIVIDED BY 5 HAS A REMAINDER OF");
+        b = parseInt(await input());
+        print("YOUR NUMBER DIVIDED BY 7 HAS A REMAINDER OF");
+        c = parseInt(await input());
+        print("\n");
+        print("LET ME THINK A MOMENT...\n");
+        print("\n");
+        d = 70 * a + 21 * b + 15 * c;
+        while (d > 105)
+            d -= 105;
+        print("YOUR NUMBER WAS " + d + ", RIGHT");
+        while (1) {
+            str = await input();
+            print("\n");
+            if (str == "YES") {
+                print("HOW ABOUT THAT!!\n");
+                break;
+            } else if (str == "NO") {
+                print("I FEEL YOUR ARITHMETIC IS IN ERROR.\n");
+                break;
+            } else {
+                print("EH?  I DON'T UNDERSTAND '" + str + "'  TRY 'YES' OR 'NO'.\n");
+            }
+        }
+        print("\n");
+        print("LET'S TRY ANOTHER.\n");
+    }
+}
+
+main();