diff --git a/75 Roulette/javascript/roulette.html b/75 Roulette/javascript/roulette.html new file mode 100644 index 00000000..02495892 --- /dev/null +++ b/75 Roulette/javascript/roulette.html @@ -0,0 +1,9 @@ + + +ROULETTE + + +

+
+
+
diff --git a/75 Roulette/javascript/roulette.js b/75 Roulette/javascript/roulette.js
new file mode 100644
index 00000000..7c3399bd
--- /dev/null
+++ b/75 Roulette/javascript/roulette.js	
@@ -0,0 +1,339 @@
+// ROULETTE
+//
+// 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 ba = [];
+var ca = [];
+var ta = [];
+var xa = [];
+var aa = [];
+
+var numbers = [1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36];
+
+// Main program
+async function main()
+{
+    print(tab(32) + "ROULETTE\n");
+    print(tab(15) + "CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY\n");
+    print("\n");
+    print("\n");
+    print("\n");
+    // Roulette
+    // David Joslin
+    print("WELCOME TO THE ROULETTE TABLE\n");
+    print("\n");
+    print("DO YOU WANT INSTRUCTIONS");
+    str = await input();
+    if (str.substr(0, 1) != "N") {
+        print("\n");
+        print("THIS IS THE BETTING LAYOUT\n");
+        print("  (*=RED)\n");
+        print("\n");
+        print(" 1*    2     3*\n");
+        print(" 4     5*    6 \n");
+        print(" 7*    8     9*\n");
+        print("10    11    12*\n");
+        print("---------------\n");
+        print("13    14*   15 \n");
+        print("16*   17    18*\n");
+        print("19*   20    21*\n");
+        print("22    23*   24 \n");
+        print("---------------\n");
+        print("25*   26    27*\n");
+        print("28    29    30*\n");
+        print("31    32*   33 \n");
+        print("34*   35    36*\n");
+        print("---------------\n");
+        print("    00    0    \n");
+        print("\n");
+        print("TYPES OF BETS\n");
+        print("\n");
+        print("THE NUMBERS 1 TO 36 SIGNIFY A STRAIGHT BET\n");
+        print("ON THAT NUMBER.\n");
+        print("THESE PAY OFF 35:1\n");
+        print("\n");
+        print("THE 2:1 BETS ARE:\n");
+        print(" 37) 1-12     40) FIRST COLUMN\n");
+        print(" 38) 13-24    41) SECOND COLUMN\n");
+        print(" 39) 25-36    42) THIRD COLUMN\n");
+        print("\n");
+        print("THE EVEN MONEY BETS ARE:\n");
+        print(" 43) 1-18     46) ODD\n");
+        print(" 44) 19-36    47) RED\n");
+        print(" 45) EVEN     48) BLACK\n");
+        print("\n");
+        print(" 49)0 AND 50)00 PAY OFF 35:1\n");
+        print(" NOTE: 0 AND 00 DO NOT COUNT UNDER ANY\n");
+        print("       BETS EXCEPT THEIR OWN.\n");
+        print("\n");
+        print("WHEN I ASK FOR EACH BET, TYPE THE NUMBER\n");
+        print("AND THE AMOUNT, SEPARATED BY A COMMA.\n");
+        print("FOR EXAMPLE: TO BET $500 ON BLACK, TYPE 48,500\n");
+        print("WHEN I ASK FOR A BET.\n");
+        print("\n");
+        print("THE MINIMUM BET IS $5, THE MAXIMUM IS $500.\n");
+        print("\n");
+    }
+    // Program begins here
+    // Type of bet(number) odds
+    for (i = 1; i <= 100; i++) {
+        ba[i] = 0;
+        ca[i] = 0;
+        ta[i] = 0;
+    }
+    for (i = 1; i <= 38; i++)
+        xa[i] = 0;
+    p = 1000;
+    d = 100000;
+    while (1) {
+        do {
+            print("HOW MANY BETS");
+            y = parseInt(await input());
+        } while (y < 1) ;
+        for (i = 1; i <= 50; i++) {
+            aa[i] = 0;
+        }
+        for (c = 1; c <= y; c++) {
+            while (1) {
+                print("NUMBER " + c + " ");
+                str = await input();
+                x = parseInt(str);
+                z = parseInt(str.substr(str.indexOf(",") + 1));
+                ba[c] = z;
+                ta[c] = x;
+                if (x < 1 || x > 50)
+                    continue;
+                if (z < 1)
+                    continue;
+                if (z < 5 || z > 500)
+                    continue;
+                if (aa[x] != 0) {
+                    print("YOU MADE THAT BET ONCE ALREADY,DUM-DUM\n");
+                    continue;
+                }
+                aa[x] = 1;
+                break;
+            }
+        }
+        print("SPINNING\n");
+        print("\n");
+        print("\n");
+        do {
+            s = Math.floor(Math.random() * 100);
+        } while (s == 0 || s > 38) ;
+        xa[s]++;    // Not used
+        if (s > 37) {
+            print("00\n");
+        } else if (s == 37) {
+            print("0\n");
+        } else {
+            for (i1 = 1; i1 <= 18; i1++) {
+                if (s == numbers[i1 - 1])
+                    break;
+            }
+            if (i1 <= 18)
+                print(s + " RED\n");
+            else
+                print(s + " BLACK\n");
+        }
+        print("\n");
+        for (c = 1; c <= y; c++) {
+            won = 0;
+            switch (ta[c]) {
+                case 37:    // 1-12 (37) 2:1
+                    if (s > 12) {
+                        won = -ba[c];
+                    } else {
+                        won = ba[c] * 2;
+                    }
+                    break;
+                case 38:    // 13-24 (38) 2:1
+                    if (s > 12 && s < 25) {
+                        won = ba[c] * 2;
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 39:    // 25-36 (39) 2:1
+                    if (s > 24 && s < 37) {
+                        won = ba[c] * 2;
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 40:    // First column (40) 2:1
+                    if (s < 37 && s % 3 == 1) {
+                        won = ba[c] * 2;
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 41:    // Second column (41) 2:1
+                    if (s < 37 && s % 3 == 2) {
+                        won = ba[c] * 2;
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 42:    // Third column (42) 2:1
+                    if (s < 37 && s % 3 == 0) {
+                        won = ba[c] * 2;
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 43:    // 1-18 (43) 1:1
+                    if (s < 19) {
+                        won = ba[c];
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 44:    // 19-36 (44) 1:1
+                    if (s > 18 && s < 37) {
+                        won = ba[c];
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 45:    // Even (45) 1:1
+                    if (s < 37 && s % 2 == 0) {
+                        won = ba[c];
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 46:    // Odd (46) 1:1
+                    if (s < 37 && s % 2 != 0) {
+                        won = ba[c];
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 47:    // Red (47) 1:1
+                    for (i = 1; i <= 18; i++) {
+                        if (s == numbers[i - 1])
+                            break;
+                    }
+                    if (i <= 18) {
+                        won = ba[c];
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+                case 48:    // Black (48) 1:1
+                    for (i = 1; i <= 18; i++) {
+                        if (s == numbers[i - 1])
+                            break;
+                    }
+                    if (i <= 18 || s > 36) {
+                        won = -ba[c];
+                    } else {
+                        won = ba[c];
+                    }
+                    break;
+                default:    // 1-36,0,00 (1-36,49,50) 35:1
+                    if (ta[c] < 49 && ta[c] == s
+                        || ta[c] == 49 && s == 37
+                        || ta[c] == 50 && s == 38) {
+                        won = ba[c] * 35;
+                    } else {
+                        won = -ba[c];
+                    }
+                    break;
+            }
+            d -= won;
+            p += won;
+            if (won < 0) {
+                print("YOU LOSE " + -won + " DOLLARS ON BET " + c + "\n");
+            } else {
+                print("YOU WIN " + won + " DOLLARS ON BET " + c + "\n");
+            }
+        }
+        print("\n");
+        print("TOTALS:\tME\tYOU\n");
+        print(" \t" + d + "\t" + p + "\n");
+        if (p <= 0) {
+            print("OOPS! YOU JUST SPENT YOUR LAST DOLLAR!\n");
+            break;
+        } else if (d <= 0) {
+            print("YOU BROKE THE HOUSE!\n");
+            p = 101000;
+        }
+        print("AGAIN");
+        str = await input();
+        if (str.substr(0, 1) != "Y")
+            break;
+    }
+    if (p < 1) {
+        print("THANKS FOR YOUR MONEY.\n");
+        print("I'LL USE IT TO BUY A SOLID GOLD ROULETTE WHEEL\n");
+    } else {
+        print("TO WHOM SHALL I MAKE THE CHECK");
+        str = await input();
+        print("\n");
+        for (i = 1; i <= 72; i++)
+            print("-");
+        print("\n");
+        print(tab(50) + "CHECK NO. " + Math.floor(Math.random() * 100) + "\n");
+        print("\n");
+        print(tab(40) + new Date().toDateString());
+        print("\n");
+        print("\n");
+        print("PAY TO THE ORDER OF-----" + str + "-----$ " + p + "\n");
+        print("\n");
+        print("\n");
+        print(tab(10) + "\tTHE MEMORY BANK OF NEW YORK\n");
+        print("\n");
+        print(tab(40) + "\tTHE COMPUTER\n");
+        print(tab(40) + "----------X-----\n");
+        print("\n");
+        for (i = 1; i <= 72; i++)
+            print("-");
+        print("\n");
+        print("COME BACK SOON!\n");
+    }
+    print("\n");
+}
+
+main();