mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-28 05:33:48 -08:00
Merge pull request #222 from nanochess/main
Ported SLALOM to Javascript
This commit is contained in:
9
35 Even Wins/javascript/evenwins.html
Normal file
9
35 Even Wins/javascript/evenwins.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>EVEN WINS</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 12pt;"></pre>
|
||||
<script src="evenwins.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
197
35 Even Wins/javascript/evenwins.js
Normal file
197
35 Even Wins/javascript/evenwins.js
Normal file
@@ -0,0 +1,197 @@
|
||||
// EVEN WINS
|
||||
//
|
||||
// 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 ma = [];
|
||||
var ya = [];
|
||||
|
||||
// Main program
|
||||
async function main()
|
||||
{
|
||||
print(tab(31) + "EVEN WINS\n");
|
||||
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
y1 = 0;
|
||||
m1 = 0;
|
||||
print(" THIS IS A TWO PERSON GAME CALLED 'EVEN WINS.'\n");
|
||||
print("TO PLAY THE GAME, THE PLAYERS NEED 27 MARBLES OR\n");
|
||||
print("OTHER OBJECTS ON A TABLE.\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print(" THE 2 PLAYERS ALTERNATE TURNS, WITH EACH PLAYER\n");
|
||||
print("REMOVING FROM 1 TO 4 MARBLES ON EACH MOVE. THE GAME\n");
|
||||
print("ENDS WHEN THERE ARE NO MARBLES LEFT, AND THE WINNER\n");
|
||||
print("IS THE ONE WITH AN EVEN NUMBER OF MARBLES.\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print(" THE ONLY RULES ARE THAT (1) YOU MUST ALTERNATE TURNS,\n");
|
||||
print("(2) YOU MUST TAKE BETWEEN 1 AND 4 MARBLES EACH TURN,\n");
|
||||
print("AND (3) YOU CANNOT SKIP A TURN.\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
while (1) {
|
||||
print(" TYPE A '1' IF YOU WANT TO GO FIRST, AND TYPE\n");
|
||||
print("A '0' IF YOU WANT ME TO GO FIRST.\n");
|
||||
c = parseInt(await input());
|
||||
print("\n");
|
||||
if (c != 0) {
|
||||
t = 27;
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("TOTAL= " + t + "\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("WHAT IS YOUR FIRST MOVE");
|
||||
m = 0;
|
||||
} else {
|
||||
t = 27;
|
||||
m = 2;
|
||||
print("\n");
|
||||
print("TOTAL= " + t + "\n");
|
||||
print("\n");
|
||||
m1 += m;
|
||||
t -= m;
|
||||
}
|
||||
while (1) {
|
||||
if (m) {
|
||||
print("I PICK UP " + m + " MARBLES.\n");
|
||||
if (t == 0)
|
||||
break;
|
||||
print("\n");
|
||||
print("TOTAL= " + t + "\n");
|
||||
print("\n");
|
||||
print(" AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS " + m1 + "\n");
|
||||
}
|
||||
while (1) {
|
||||
y = parseInt(await input());
|
||||
print("\n");
|
||||
if (y < 1 || y > 4) {
|
||||
print("\n");
|
||||
print("THE NUMBER OF MARBLES YOU MUST TAKE BE A POSITIVE\n");
|
||||
print("INTEGER BETWEEN 1 AND 4.\n");
|
||||
print("\n");
|
||||
print(" WHAT IS YOUR NEXT MOVE?\n");
|
||||
print("\n");
|
||||
} else if (y > t) {
|
||||
print(" YOU HAVE TRIED TO TAKE MORE MARBLES THAN THERE ARE\n");
|
||||
print("LEFT. TRY AGAIN.\n");
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
y1 += y;
|
||||
t -= y;
|
||||
if (t == 0)
|
||||
break;
|
||||
print("TOTAL= " + t + "\n");
|
||||
print("\n");
|
||||
print("YOUR TOTAL IS " + y1 + "\n");
|
||||
if (t < 0.5)
|
||||
break;
|
||||
r = t % 6;
|
||||
if (y1 % 2 != 0) {
|
||||
if (t >= 4.2) {
|
||||
if (r <= 3.4) {
|
||||
m = r + 1;
|
||||
m1 += m;
|
||||
t -= m;
|
||||
} else if (r < 4.7 || r > 3.5) {
|
||||
m = 4;
|
||||
m1 += m;
|
||||
t -= m;
|
||||
} else {
|
||||
m = 1;
|
||||
m1 += m;
|
||||
t -= m;
|
||||
}
|
||||
} else {
|
||||
m = t;
|
||||
t -= m;
|
||||
print("I PICK UP " + m + " MARBLES.\n");
|
||||
print("\n");
|
||||
print("TOTAL = 0\n");
|
||||
m1 += m;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (r < 1.5 || r > 5.3) {
|
||||
m = 1;
|
||||
m1 += m;
|
||||
t -= m;
|
||||
} else {
|
||||
m = r - 1;
|
||||
m1 += m;
|
||||
t -= m;
|
||||
if (t < 0.2) {
|
||||
print("I PICK UP " + m + " MARBLES.\n");
|
||||
print("\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
print("THAT IS ALL OF THE MARBLES.\n");
|
||||
print("\n");
|
||||
print(" MY TOTAL IS " + m1 + ", YOUR TOTAL IS " + y1 +"\n");
|
||||
print("\n");
|
||||
if (m1 % 2 != 0) {
|
||||
print(" YOU WON. DO YOU WANT TO PLAY\n");
|
||||
} else {
|
||||
print(" I WON. DO YOU WANT TO PLAY\n");
|
||||
}
|
||||
print("AGAIN? TYPE 1 FOR YES AND 0 FOR NO.\n");
|
||||
a1 = parseInt(await input());
|
||||
if (a1 == 0)
|
||||
break;
|
||||
m1 = 0;
|
||||
y1 = 0;
|
||||
}
|
||||
print("\n");
|
||||
print("OK. SEE YOU LATER\n");
|
||||
}
|
||||
|
||||
main();
|
||||
9
35 Even Wins/javascript/gameofevenwins.html
Normal file
9
35 Even Wins/javascript/gameofevenwins.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>GAME OF EVEN WINS</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 12pt;"></pre>
|
||||
<script src="gameofevenwins.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
152
35 Even Wins/javascript/gameofevenwins.js
Normal file
152
35 Even Wins/javascript/gameofevenwins.js
Normal file
@@ -0,0 +1,152 @@
|
||||
// GAME OF EVEN WINS
|
||||
//
|
||||
// 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 r = [[], []];
|
||||
|
||||
// Main program
|
||||
async function main()
|
||||
{
|
||||
print(tab(28) + "GAME OF EVEN WINS\n");
|
||||
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("DO YOU WANT INSTRUCTIONS (YES OR NO)");
|
||||
str = await input();
|
||||
print("\n");
|
||||
if (str != "NO") {
|
||||
print("THE GAME IS PLAYED AS FOLLOWS:\n");
|
||||
print("\n");
|
||||
print("AT THE BEGINNING OF THE GAME, A RANDOM NUMBER OF CHIPS ARE\n");
|
||||
print("PLACED ON THE BOARD. THE NUMBER OF CHIPS ALWAYS STARTS\n");
|
||||
print("AS AN ODD NUMBER. ON EACH TURN, A PLAYER MUST TAKE ONE,\n");
|
||||
print("TWO, THREE, OR FOUR CHIPS. THE WINNER IS THE PLAYER WHO\n");
|
||||
print("FINISHES WITH A TOTAL NUMBER OF CHIPS THAT IS EVEN.\n");
|
||||
print("THE COMPUTER STARTS OUT KNOWING ONLY THE RULES OF THE\n");
|
||||
print("GAME. IT GRADUALLY LEARNS TO PLAY WELL. IT SHOULD BE\n");
|
||||
print("DIFFICULT TO BEAT THE COMPUTER AFTER TWENTY GAMES IN A ROW.\n");
|
||||
print("TRY IT!!!!\n");
|
||||
print("\n");
|
||||
print("TO QUIT AT ANY TIME, TYPE A '0' AS YOUR MOVE.\n");
|
||||
print("\n");
|
||||
}
|
||||
l = 0;
|
||||
b = 0;
|
||||
for (i = 0; i <= 5; i++) {
|
||||
r[1][i] = 4;
|
||||
r[0][i] = 4;
|
||||
}
|
||||
while (1) {
|
||||
a = 0;
|
||||
b = 0;
|
||||
e = 0;
|
||||
l = 0;
|
||||
p = Math.floor((13 * Math.random() + 9) / 2) * 2 + 1;
|
||||
while (1) {
|
||||
if (p == 1) {
|
||||
print("THERE IS 1 CHIP ON THE BOARD.\n");
|
||||
} else {
|
||||
print("THERE ARE " + p + " CHIPS ON THE BOARD.\n");
|
||||
}
|
||||
e1 = e;
|
||||
l1 = l;
|
||||
e = a % 2;
|
||||
l = p % 6;
|
||||
if (r[e][l] < p) {
|
||||
m = r[e][l];
|
||||
if (m <= 0) {
|
||||
m = 1;
|
||||
b = 1;
|
||||
break;
|
||||
}
|
||||
p -= m;
|
||||
if (m == 1)
|
||||
print("COMPUTER TAKES 1 CHIP LEAVING " + p + "... YOUR MOVE");
|
||||
else
|
||||
print("COMPUTER TAKES " + m + " CHIPS LEAVING " + p + "... YOUR MOVE");
|
||||
b += m;
|
||||
while (1) {
|
||||
m = parseInt(await input());
|
||||
if (m == 0)
|
||||
break;
|
||||
if (m < 1 || m > 4 || m > p) {
|
||||
print(m + " IS AN ILLEGAL MOVE ... YOUR MOVE");
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m == 0)
|
||||
break;
|
||||
if (m == p)
|
||||
break;
|
||||
p -= m;
|
||||
a += m;
|
||||
} else {
|
||||
if (p == 1) {
|
||||
print("COMPUTER TAKES 1 CHIP.\n");
|
||||
} else {
|
||||
print("COMPUTER TAKES " + p + " CHIPS.\n");
|
||||
}
|
||||
r[e][l] = p;
|
||||
b += p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m == 0)
|
||||
break;
|
||||
if (b % 2 != 0) {
|
||||
print("GAME OVER ... YOU WIN!!!\n");
|
||||
print("\n");
|
||||
if (r[e][l] != 1) {
|
||||
r[e][l]--;
|
||||
} else if (r[e1][l1] != 1) {
|
||||
r[e1][l1]--;
|
||||
}
|
||||
} else {
|
||||
print("GAME OVER ... I WIN!!!\n");
|
||||
print("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
9
75 Roulette/javascript/roulette.html
Normal file
9
75 Roulette/javascript/roulette.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>ROULETTE</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 12pt;"></pre>
|
||||
<script src="roulette.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
339
75 Roulette/javascript/roulette.js
Normal file
339
75 Roulette/javascript/roulette.js
Normal file
@@ -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();
|
||||
9
79 Slalom/javascript/slalom.html
Normal file
9
79 Slalom/javascript/slalom.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>SLALOM</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 12pt;"></pre>
|
||||
<script src="slalom.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
260
79 Slalom/javascript/slalom.js
Normal file
260
79 Slalom/javascript/slalom.js
Normal file
@@ -0,0 +1,260 @@
|
||||
// SLALOM
|
||||
//
|
||||
// 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 speed = [,14,18,26,29,18,
|
||||
25,28,32,29,20,
|
||||
29,29,25,21,26,
|
||||
29,20,21,20,18,
|
||||
26,25,33,31,22];
|
||||
|
||||
function show_instructions()
|
||||
{
|
||||
print("\n");
|
||||
print("*** SLALOM: THIS IS THE 1976 WINTER OLYMPIC GIANT SLALOM. YOU ARE\n");
|
||||
print(" THE AMERICAN TEAM'S ONLY HOPE OF A GOLD MEDAL.\n");
|
||||
print("\n");
|
||||
print(" 0 -- TYPE THIS IS YOU WANT TO SEE HOW LONG YOU'VE TAKEN.\n");
|
||||
print(" 1 -- TYPE THIS IF YOU WANT TO SPEED UP A LOT.\n");
|
||||
print(" 2 -- TYPE THIS IF YOU WANT TO SPEED UP A LITTLE.\n");
|
||||
print(" 3 -- TYPE THIS IF YOU WANT TO SPEED UP A TEENSY.\n");
|
||||
print(" 4 -- TYPE THIS IF YOU WANT TO KEEP GOING THE SAME SPEED.\n");
|
||||
print(" 5 -- TYPE THIS IF YOU WANT TO CHECK A TEENSY.\n");
|
||||
print(" 6 -- TYPE THIS IF YOU WANT TO CHECK A LITTLE.\n");
|
||||
print(" 7 -- TYPE THIS IF YOU WANT TO CHECK A LOT.\n");
|
||||
print(" 8 -- TYPE THIS IF YOU WANT TO CHEAT AND TRY TO SKIP A GATE.\n");
|
||||
print("\n");
|
||||
print(" THE PLACE TO USE THESE OPTIONS IS WHEN THE COMPUTER ASKS:\n");
|
||||
print("\n");
|
||||
print("OPTION?\n");
|
||||
print("\n");
|
||||
print(" GOOD LUCK!\n");
|
||||
print("\n");
|
||||
}
|
||||
|
||||
function show_speeds()
|
||||
{
|
||||
print("GATE MAX\n");
|
||||
print(" # M.P.H.\n");
|
||||
print("----------\n");
|
||||
for (var b = 1; b <= v; b++) {
|
||||
print(" " + b + " " + speed[b] + "\n");
|
||||
}
|
||||
}
|
||||
|
||||
// Main program
|
||||
async function main()
|
||||
{
|
||||
var gold = 0;
|
||||
var silver = 0;
|
||||
var bronze = 0;
|
||||
|
||||
print(tab(33) + "SLALOM\n");
|
||||
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
while (1) {
|
||||
print("HOW MANY GATES DOES THIS COURSE HAVE (1 TO 25)");
|
||||
v = parseInt(await input());
|
||||
if (v >= 25) {
|
||||
print("25 IS THE LIMIT\n");
|
||||
v = 25;
|
||||
} else if (v < 1) {
|
||||
print("TRY AGAIN.\n");
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
print("\n");
|
||||
print("TYPE \"INS\" FOR INSTRUCTIONS\n");
|
||||
print("TYPE \"MAX\" FOR APPROXIMATE MAXIMUM SPEEDS\n");
|
||||
print("TYPE \"RUN\" FOR THE BEGINNING OF THE RACE\n");
|
||||
while (1) {
|
||||
print("COMMAND--");
|
||||
str = await input();
|
||||
if (str == "INS") {
|
||||
show_instructions();
|
||||
} else if (str == "MAX") {
|
||||
show_speeds();
|
||||
} else if (str == "RUN") {
|
||||
break;
|
||||
} else {
|
||||
print("\"" + str + "\" IS AN ILLEGAL COMMAND--RETRY");
|
||||
}
|
||||
}
|
||||
while (1) {
|
||||
print("RATE YOURSELF AS A SKIER, (1=WORST, 3=BEST)");
|
||||
a = parseInt(await input());
|
||||
if (a < 1 || a > 3)
|
||||
print("THE BOUNDS ARE 1-3\n");
|
||||
else
|
||||
break;
|
||||
}
|
||||
while (1) {
|
||||
print("THE STARTER COUNTS DOWN...5...4...3...2...1...GO!");
|
||||
t = 0;
|
||||
s = Math.floor(Math.random(1) * (18 - 9) + 9);
|
||||
print("\n");
|
||||
print("YOU'RE OFF!\n");
|
||||
for (o = 1; o <= v; o++) {
|
||||
q = speed[o];
|
||||
print("\n");
|
||||
print("HERE COMES GATE #" + o + " :\n");
|
||||
print(s + " M.P.H.\n");
|
||||
s1 = s;
|
||||
while (1) {
|
||||
print("OPTION");
|
||||
o1 = parseInt(await input());
|
||||
if (o1 < 0 || o1 > 8)
|
||||
print("WHAT?\n");
|
||||
else if (o1 == 0)
|
||||
print("YOU'VE TAKEN " + (t + Math.random()) + " SECONDS.\n");
|
||||
else
|
||||
break;
|
||||
}
|
||||
finish = false;
|
||||
switch (o1) {
|
||||
case 1:
|
||||
s += Math.floor(Math.random() * (10 - 5) + 5);
|
||||
break;
|
||||
case 2:
|
||||
s += Math.floor(Math.random() * (5 - 3) + 3);
|
||||
break;
|
||||
case 3:
|
||||
s += Math.floor(Math.random() * (4 - 1) + 1);
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
case 5:
|
||||
s -= Math.floor(Math.random() * (4 - 1) + 1);
|
||||
break;
|
||||
case 6:
|
||||
s -= Math.floor(Math.random() * (5 - 3) + 3);
|
||||
break;
|
||||
case 7:
|
||||
s -= Math.floor(Math.random() * (10 - 5) + 5);
|
||||
break;
|
||||
case 8:
|
||||
print("***CHEAT\n");
|
||||
if (Math.random() >= 0.7) {
|
||||
print("YOU MADE IT!\n");
|
||||
t += 1.5;
|
||||
} else {
|
||||
print("AN OFFICIAL CAUGHT YOU!\n");
|
||||
print("YOU TOOK " + (t + Math.random()) + " SECONDS.\n");
|
||||
finish = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!finish) {
|
||||
if (o1 != 4)
|
||||
print(s + " M.P.H.\n");
|
||||
if (s > q) {
|
||||
if (Math.random() < ((s - q) * 0.1) + 0.2) {
|
||||
print("YOU WENT OVER THE MAXIMUM SPEED AND ");
|
||||
if (Math.random() < 0.5) {
|
||||
print("SNAGGED A FLAG!\n");
|
||||
} else {
|
||||
print("WIPED OUT!\n");
|
||||
}
|
||||
print("YOU TOOK " + (t + Math.random()) + " SECONDS.\n");
|
||||
finish = true;
|
||||
} else {
|
||||
print("YOU WENT OVER THE MAXIMUM SPEED AND MADE IT!\n");
|
||||
}
|
||||
} else if (s > q - 1) {
|
||||
print("CLOSE ONE!\n");
|
||||
}
|
||||
}
|
||||
if (finish)
|
||||
break;
|
||||
if (s < 7) {
|
||||
print("LET'S BE REALISTIC, OK? LET'S GO BACK AND TRY AGAIN...\n");
|
||||
s = s1;
|
||||
o--;
|
||||
continue;
|
||||
}
|
||||
t += q - s + 1;
|
||||
if (s > q) {
|
||||
t += 0.5;
|
||||
}
|
||||
}
|
||||
if (!finish) {
|
||||
print("\n");
|
||||
print("YOU TOOK " + (t + Math.random()) + " SECONDS.\n");
|
||||
m = t;
|
||||
m /= v;
|
||||
if (m < 1.5 - (a * 0.1)) {
|
||||
print("YOU WON A GOLD MEDAL!\n");
|
||||
gold++;
|
||||
} else if (m < 2.9 - (a * 0.1)) {
|
||||
print("YOU WON A SILVER MEDAL\n");
|
||||
silver++;
|
||||
} else if (m < 4.4 - (a * 0.1)) {
|
||||
print("YOU WON A BRONZE MEDAL\n");
|
||||
bronze++;
|
||||
}
|
||||
}
|
||||
while (1) {
|
||||
print("\n");
|
||||
print("DO YOU WANT TO RACE AGAIN");
|
||||
str = await input();
|
||||
if (str != "YES" && str != "NO")
|
||||
print("PLEASE TYPE 'YES' OR 'NO'\n");
|
||||
else
|
||||
break;
|
||||
}
|
||||
if (str != "YES")
|
||||
break;
|
||||
}
|
||||
print("THANKS FOR THE RACE\n");
|
||||
if (gold >= 1)
|
||||
print("GOLD MEDALS: " + gold + "\n");
|
||||
if (silver >= 1)
|
||||
print("SILVER MEDALS: " + silver + "\n");
|
||||
if (bronze >= 1)
|
||||
print("BRONZE MEDALS: " + bronze + "\n");
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user