From 990658b8e6945107d77bd2b04dbefa95b6357e5d Mon Sep 17 00:00:00 2001 From: nanochess Date: Wed, 3 Mar 2021 15:24:21 -0600 Subject: [PATCH] Ported CRAPS to Javascript --- 28 Combat/javascript/combat.js | 2 +- 29 Craps/javascript/craps.html | 9 +++ 29 Craps/javascript/craps.js | 128 +++++++++++++++++++++++++++++++++ 3 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 29 Craps/javascript/craps.html create mode 100644 29 Craps/javascript/craps.js diff --git a/28 Combat/javascript/combat.js b/28 Combat/javascript/combat.js index be4d72a9..a2e43c71 100644 --- a/28 Combat/javascript/combat.js +++ b/28 Combat/javascript/combat.js @@ -1,4 +1,4 @@ -// CHOMP +// COMBAT // // Converted from BASIC to Javascript by Oscar Toledo G. (nanochess) // diff --git a/29 Craps/javascript/craps.html b/29 Craps/javascript/craps.html new file mode 100644 index 00000000..50b2ca9b --- /dev/null +++ b/29 Craps/javascript/craps.html @@ -0,0 +1,9 @@ + + +CRAPS + + +

+
+
+
diff --git a/29 Craps/javascript/craps.js b/29 Craps/javascript/craps.js
new file mode 100644
index 00000000..93351011
--- /dev/null
+++ b/29 Craps/javascript/craps.js	
@@ -0,0 +1,128 @@
+// CRAPS
+//
+// 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;
+}
+
+// Main program
+async function main()
+{
+    print(tab(33) + "CRAPS\n");
+    print(tab(15) + "CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY\n");
+    print("\n");
+    print("\n");
+    print("\n");
+    r = 0;
+    print("2,3,12 ARE LOSERS: 4,5,6,8,9,10 ARE POINTS: 7,11 ARE NATURAL WINNERS.\n");
+    t = 1;
+    print("PICK A NUMBER AND INPUT TO ROLL DICE");
+    z = parseInt(await input());
+    do {
+        x = Math.random();
+        t++;
+    } while (t <= z) ;
+    while (1) {
+        print("INPUT THE AMOUNT OF YOUR WAGER.");
+        f = parseInt(await input());
+        print("I WILL NOW THROW THE DICE\n");
+        do {
+            e = Math.floor(7 * Math.random());
+            s = Math.floor(7 * Math.random());
+            x = e + s;
+        } while (x == 0 || x == 1) ;
+        if (x == 7 || x == 11) {
+            print(x + " - NATURAL....A WINNER!!!!\n");
+            print(x + " PAYS EVEN MONEY, YOU WIN " + f + " DOLLARS\n");
+            r += f;
+        } else if (x == 2) {
+            print(x + " - SNAKE EYES....YOU LOSE.\n");
+            print("YOU LOSE " + f + " DOLLARS.\n");
+            r -= f;
+        } else if (x == 3 || x == 12) { // Original duplicates comparison in line 70
+            print(x + " - CRAPS....YOU LOSE.\n");
+            print("YOU LOSE " + f + " DOLLARS.\n");
+            r -= f;
+        } else {
+            print(x + " IS THE POINT. I WILL ROLL AGAIN\n");
+            while (1) {
+                do {
+                    h = Math.floor(7 * Math.random());
+                    q = Math.floor(7 * Math.random());
+                    o = h + q;
+                } while (o == 0 || o == 1) ;
+                if (o == 7) {
+                    print(o + " - CRAPS, YOU LOSE.\n");
+                    print("YOU LOSE $" + f + "\n");
+                    r -= f;
+                    break;
+                }
+                if (o == x) {
+                    print(x + " - A WINNER.........CONGRATS!!!!!!!!\n");
+                    print(x + " AT 2 TO 1 ODDS PAYS YOU...LET ME SEE..." + 2 * f + " DOLLARS\n");
+                    r += f * 2;
+                    break;
+                }
+                print(o + " - NO POINT. I WILL ROLL AGAIN\n");
+            }
+        }
+        print(" IF YOU WANT TO PLAY AGAIN PRINT 5 IF NOT PRINT 2");
+        m = parseInt(await input());
+        if (r < 0) {
+            print("YOU ARE NOW UNDER $" + -r + "\n");
+        } else if (r > 0) {
+            print("YOU ARE NOW AHEAD $" + r + "\n");
+        } else {
+            print("YOU ARE NOW EVEN AT 0\n");
+        }
+        if (m != 5)
+            break;
+    }
+    if (r < 0) {
+        print("TOO BAD, YOU ARE IN THE HOLE. COME AGAIN.\n");
+    } else if (r > 0) {
+        print("CONGRATULATIONS---YOU CAME OUT A WINNER. COME AGAIN!\n");
+    } else {
+        print("CONGRATULATIONS---YOU CAME OUT EVEN, NOT BAD FOR AN AMATEUR\n");
+    }
+    
+}
+
+main();