From d6d7123bb3a9a226e512c33a789980a327b95bf6 Mon Sep 17 00:00:00 2001 From: nanochess Date: Sat, 6 Mar 2021 23:33:44 -0600 Subject: [PATCH] Ported SLOTS to Javascript --- 80 Slots/javascript/slots.html | 9 +++ 80 Slots/javascript/slots.js | 135 +++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 80 Slots/javascript/slots.html create mode 100644 80 Slots/javascript/slots.js diff --git a/80 Slots/javascript/slots.html b/80 Slots/javascript/slots.html new file mode 100644 index 00000000..33b8e73f --- /dev/null +++ b/80 Slots/javascript/slots.html @@ -0,0 +1,9 @@ + + +SLOTS + + +

+
+
+
diff --git a/80 Slots/javascript/slots.js b/80 Slots/javascript/slots.js
new file mode 100644
index 00000000..2bafd26e
--- /dev/null
+++ b/80 Slots/javascript/slots.js	
@@ -0,0 +1,135 @@
+// SLOTS
+//
+// 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 figures = [, "BAR", "BELL", "ORANGE", "LEMON", "PLUM", "CHERRY"];
+
+// Main program
+async function main()
+{
+    print(tab(30) + "SLOTS\n");
+    print(tab(15) + "CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY\n");
+    print("\n");
+    print("\n");
+    print("\n");
+    // Produced by Fred Mirabelle and Bob Harper on Jan 29, 1973
+    // It simulates the slot machine.
+    print("YOU ARE IN THE H&M CASINO,IN FRONT ON ONE OF OUR\n");
+    print("ONE-ARM BANDITS. BET FROM $1 TO $100.\n");
+    print("TO PULL THE ARM, PUNCH THE RETURN KEY AFTER MAKING YOUR BET.\n");
+    p = 0;
+    while (1) {
+        while (1) {
+            print("\n");
+            print("YOUR BET");
+            m = parseInt(await input());
+            if (m > 100) {
+                print("HOUSE LIMITS ARE $100\n");
+            } else if (m < 1) {
+                print("MINIMUM BET IS $1\n");
+            } else {
+                break;
+            }
+        }
+        // Not implemented: GOSUB 1270 ten chimes
+        print("\n");
+        x = Math.floor(6 * Math.random() + 1);
+        y = Math.floor(6 * Math.random() + 1);
+        z = Math.floor(6 * Math.random() + 1);
+        print("\n");
+        // Not implemented: GOSUB 1310 seven chimes after figure x and y
+        print(figures[x] + " " + figures[y] + " " + figures[z] + "\n");
+        lost = false;
+        if (x == y && y == z) {  // Three figure
+            print("\n");
+            if (z != 1) {
+                print("**TOP DOLLAR**\n");
+                p += ((10 * m) + m);
+            } else {
+                print("***JACKPOT***\n");
+                p += ((100 * m) + m);
+            }
+            print("YOU WON!\n");
+        } else if (x == y || y == z || x == z) {
+            if (x == y)
+                c = x;
+            else
+                c = z;
+            if (c == 1) {
+                print("\n");
+                print("*DOUBLE BAR*\n");
+                print("YOU WON\n");
+                p += ((5 * m) + m);
+            } else if (x != z) {
+                print("\n");
+                print("DOUBLE!!\n");
+                print("YOU WON!\n");
+                p += ((2 * m) + m);
+            } else {
+                lost = true;
+            }
+        } else {
+            lost = true;
+        }
+        if (lost) {
+            print("\n");
+            print("YOU LOST.\n");
+            p -= m;
+        }
+        print("YOUR STANDINGS ARE $" + p + "\n");
+        print("AGAIN");
+        str = await input();
+        if (str.substr(0, 1) != "Y")
+            break;
+    }
+    print("\n");
+    if (p < 0) {
+        print("PAY UP!  PLEASE LEAVE YOUR MONEY ON THE TERMINAL.\n");
+    } else if (p == 0) {
+        print("HEY, YOU BROKE EVEN.\n");
+    } else {
+        print("COLLECT YOUR WINNINGS FROM THE H&M CASHIER.\n");
+    }
+}
+
+main();