mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-28 13:46:06 -08:00
Ported HORSERACE to Javascript
This commit is contained in:
9
50 Horserace/javascript/horserace.html
Normal file
9
50 Horserace/javascript/horserace.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>HORSERACE</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 12pt;"></pre>
|
||||
<script src="horserace.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
213
50 Horserace/javascript/horserace.js
Normal file
213
50 Horserace/javascript/horserace.js
Normal file
@@ -0,0 +1,213 @@
|
||||
// HORSERACE
|
||||
//
|
||||
// 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 sa = [];
|
||||
var ws = [];
|
||||
var da = [];
|
||||
var qa = [];
|
||||
var pa = [];
|
||||
var ma = [];
|
||||
var ya = [];
|
||||
var vs = [];
|
||||
|
||||
// Main program
|
||||
async function main()
|
||||
{
|
||||
print(tab(31) + "HORSERACE\n");
|
||||
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("WELCOME TO SOUTH PORTLAND HIGH RACETRACK\n");
|
||||
print(" ...OWNED BY LAURIE CHEVALIER\n");
|
||||
print("DO YOU WANT DIRECTIONS");
|
||||
str = await input();
|
||||
if (str == "YES") {
|
||||
print("UP TO 10 MAY PLAY. A TABLE OF ODDS WILL BE PRINTED. YOU\n");
|
||||
print("MAY BET ANY + AMOUNT UNDER 100000 ON ONE HORSE.\n");
|
||||
print("DURING THE RACE, A HORSE WILL BE SHOWN BY ITS\n");
|
||||
print("NUMBER. THE HORSES RACE DOWN THE PAPER!\n");
|
||||
print("\n");
|
||||
}
|
||||
print("HOW MANY WANT TO BET");
|
||||
c = parseInt(await input());
|
||||
print("WHEN ? APPEARS,TYPE NAME\n");
|
||||
for (a = 1; a <= c; a++) {
|
||||
ws[a] = await input();
|
||||
}
|
||||
do {
|
||||
print("\n");
|
||||
print("HORSE\t\tNUMBERS\tODDS\n");
|
||||
print("\n");
|
||||
for (i = 1; i <= 8; i++) {
|
||||
sa[i] = 0;
|
||||
}
|
||||
r = 0;
|
||||
for (a = 1; a <= 8; a++) {
|
||||
da[a] = Math.floor(10 * Math.random() + 1);
|
||||
}
|
||||
for (a = 1; a <= 8; a++) {
|
||||
r = r + da[a];
|
||||
}
|
||||
vs[1] = "JOE MAN";
|
||||
vs[2] = "L.B.J.";
|
||||
vs[3] = "MR.WASHBURN";
|
||||
vs[4] = "MISS KAREN";
|
||||
vs[5] = "JOLLY";
|
||||
vs[6] = "HORSE";
|
||||
vs[7] = "JELLY DO NOT";
|
||||
vs[8] = "MIDNIGHT";
|
||||
for (n = 1; n <= 8; n++) {
|
||||
print(vs[n] + "\t\t" + n + "\t" + (r / da[n]) + ":1\n");
|
||||
}
|
||||
print("--------------------------------------------------\n");
|
||||
print("PLACE YOUR BETS...HORSE # THEN AMOUNT\n");
|
||||
for (j = 1; j <= c; j++) {
|
||||
while (1) {
|
||||
print(ws[j]);
|
||||
str = await input();
|
||||
qa[j] = parseInt(str);
|
||||
pa[j] = parseInt(str.substr(str.indexOf(",") + 1));
|
||||
if (pa[j] < 1 || pa[j] >= 100000) {
|
||||
print(" YOU CAN'T DO THAT!\N");
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
print("\n");
|
||||
print("1 2 3 4 5 6 7 8\n");
|
||||
t = 0;
|
||||
do {
|
||||
print("XXXXSTARTXXXX\n");
|
||||
for (i = 1; i <= 8; i++) {
|
||||
m = i;
|
||||
ma[i] = m;
|
||||
ya[ma[i]] = Math.floor(100 * Math.random() + 1);
|
||||
if (ya[ma[i]] < 10) {
|
||||
ya[ma[i]] = 1;
|
||||
continue;
|
||||
}
|
||||
s = Math.floor(r / da[i] + 0.5);
|
||||
if (ya[ma[i]] < s + 17) {
|
||||
ya[ma[i]] = 2;
|
||||
continue;
|
||||
}
|
||||
if (ya[ma[i]] < s + 37) {
|
||||
ya[ma[i]] = 3;
|
||||
continue;
|
||||
}
|
||||
if (ya[ma[i]] < s + 57) {
|
||||
ya[ma[i]] = 4;
|
||||
continue;
|
||||
}
|
||||
if (ya[ma[i]] < s + 77) {
|
||||
ya[ma[i]] = 5;
|
||||
continue;
|
||||
}
|
||||
if (ya[ma[i]] < s + 92) {
|
||||
ya[ma[i]] = 6;
|
||||
continue;
|
||||
}
|
||||
ya[ma[i]] = 7;
|
||||
}
|
||||
m = i;
|
||||
for (i = 1; i <= 8; i++) {
|
||||
sa[ma[i]] = sa[ma[i]] + ya[ma[i]];
|
||||
}
|
||||
i = 1;
|
||||
for (l = 1; l <= 8; l++) {
|
||||
for (i = 1; i <= 8 - l; i++) {
|
||||
if (sa[ma[i]] < sa[ma[i + 1]])
|
||||
continue;
|
||||
h = ma[i];
|
||||
ma[i] = ma[i + 1];
|
||||
ma[i + 1] = h;
|
||||
}
|
||||
}
|
||||
t = sa[ma[8]];
|
||||
for (i = 1; i <= 8; i++) {
|
||||
b = sa[ma[i]] - sa[ma[i - 1]];
|
||||
if (b != 0) {
|
||||
for (a = 1; a <= b; a++) {
|
||||
print("\n");
|
||||
if (sa[ma[i]] > 27)
|
||||
break;
|
||||
}
|
||||
if (a <= b)
|
||||
break;
|
||||
}
|
||||
print(" " + ma[i] + " ");
|
||||
}
|
||||
for (a = 1; a < 28 - t; a++) {
|
||||
print("\n");
|
||||
}
|
||||
print("XXXXFINISHXXXX\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("---------------------------------------------\n");
|
||||
print("\n");
|
||||
} while (t < 28) ;
|
||||
print("THE RACE RESULTS ARE:\n");
|
||||
z9 = 1;
|
||||
for (i = 8; i >= 1; i--) {
|
||||
f = ma[i];
|
||||
print("\n");
|
||||
print("" + z9 + " PLACE HORSE NO. " + f + " AT " + (r / da[f]) + ":1\n");
|
||||
z9++;
|
||||
}
|
||||
for (j = 1; j <= c; j++) {
|
||||
if (qa[j] != ma[8])
|
||||
continue;
|
||||
n = qa[j];
|
||||
print("\n");
|
||||
print(ws[j] + " WINS $" + (r / da[n]) * pa[j] + "\n");
|
||||
}
|
||||
print("DO YOU WANT TO BET ON THE NEXT RACE ?\n");
|
||||
print("YES OR NO");
|
||||
str = await input();
|
||||
} while (str == "YES") ;
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user