mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-23 07:29:02 -08:00
Ported HANGMAN and HELLO to Javascript
This commit is contained in:
9
44 Hangman/javascript/hangman.html
Normal file
9
44 Hangman/javascript/hangman.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>HANGMAN</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<pre id="output" style="font-size: 12pt;"></pre>
|
||||||
|
<script src="hangman.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
266
44 Hangman/javascript/hangman.js
Normal file
266
44 Hangman/javascript/hangman.js
Normal file
@@ -0,0 +1,266 @@
|
|||||||
|
// HANGMAN
|
||||||
|
//
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
print(tab(32) + "HANGMAN\n");
|
||||||
|
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
|
||||||
|
var pa = [];
|
||||||
|
var la = [];
|
||||||
|
var da = [];
|
||||||
|
var na = [];
|
||||||
|
var ua = [];
|
||||||
|
|
||||||
|
var words = ["GUM","SIN","FOR","CRY","LUG","BYE","FLY",
|
||||||
|
"UGLY","EACH","FROM","WORK","TALK","WITH","SELF",
|
||||||
|
"PIZZA","THING","FEIGN","FIEND","ELBOW","FAULT","DIRTY",
|
||||||
|
"BUDGET","SPIRIT","QUAINT","MAIDEN","ESCORT","PICKAX",
|
||||||
|
"EXAMPLE","TENSION","QUININE","KIDNEY","REPLICA","SLEEPER",
|
||||||
|
"TRIANGLE","KANGAROO","MAHOGANY","SERGEANT","SEQUENCE",
|
||||||
|
"MOUSTACHE","DANGEROUS","SCIENTIST","DIFFERENT","QUIESCENT",
|
||||||
|
"MAGISTRATE","ERRONEOUSLY","LOUDSPEAKER","PHYTOTOXIC",
|
||||||
|
"MATRIMONIAL","PARASYMPATHOMIMETIC","THIGMOTROPISM"];
|
||||||
|
|
||||||
|
// Main control section
|
||||||
|
async function main()
|
||||||
|
{
|
||||||
|
c = 1;
|
||||||
|
n = 50;
|
||||||
|
while (1) {
|
||||||
|
for (i = 1; i <= 20; i++)
|
||||||
|
da[i] = "-";
|
||||||
|
for (i = 1; i <= n; i++)
|
||||||
|
ua[i] = 0;
|
||||||
|
m = 0;
|
||||||
|
ns = "";
|
||||||
|
for (i = 1; i <= 12; i++) {
|
||||||
|
pa[i] = [];
|
||||||
|
for (j = 1; j <= 12; j++) {
|
||||||
|
pa[i][j] = " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i = 1; i <= 12; i++) {
|
||||||
|
pa[i][1] = "X";
|
||||||
|
}
|
||||||
|
for (i = 1; i <= 7; i++) {
|
||||||
|
pa[1][i] = "X";
|
||||||
|
}
|
||||||
|
pa[2][7] = "X";
|
||||||
|
if (c >= n) {
|
||||||
|
print("YOU DID ALL THE WORDS!!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
do {
|
||||||
|
q = Math.floor(n * Math.random()) + 1;
|
||||||
|
} while (ua[q] == 1) ;
|
||||||
|
ua[q] = 1;
|
||||||
|
c++;
|
||||||
|
t1 = 0;
|
||||||
|
as = words[q - 1];
|
||||||
|
l = as.length;
|
||||||
|
for (i = 1; i <= as.length; i++)
|
||||||
|
la[i] = as[i - 1];
|
||||||
|
while (1) {
|
||||||
|
while (1) {
|
||||||
|
print("HERE ARE THE LETTERS YOU USED:\n");
|
||||||
|
print(ns + "\n");
|
||||||
|
print("\n");
|
||||||
|
for (i = 1; i <= l; i++) {
|
||||||
|
print(da[i]);
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("WHAT IS YOUR GUESS");
|
||||||
|
str = await input();
|
||||||
|
if (ns.indexOf(str) != -1) {
|
||||||
|
print("YOU GUESSED THAT LETTER BEFORE!\n");
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ns += str;
|
||||||
|
t1++;
|
||||||
|
r = 0;
|
||||||
|
for (i = 1; i <= l; i++) {
|
||||||
|
if (la[i] == str) {
|
||||||
|
da[i] = str;
|
||||||
|
r++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (r == 0) {
|
||||||
|
m++;
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("SORRY, THAT LETTER ISN'T IN THE WORD.\n");
|
||||||
|
switch (m) {
|
||||||
|
case 1:
|
||||||
|
print("FIRST, WE DRAW A HEAD\n");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
print("NOW WE DRAW A BODY.\n");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
print("NEXT WE DRAW AN ARM.\n");
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
print("THIS TIME IT'S THE OTHER ARM.\n");
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
print("NOW, LET'S DRAW THE RIGHT LEG.\n");
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
print("THIS TIME WE DRAW THE LEFT LEG.\n");
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
print("NOW WE PUT UP A HAND.\n");
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
print("NEXT THE OTHER HAND.\n");
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
print("NOW WE DRAW ONE FOOT.\n");
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
print("HERE'S THE OTHER FOOT -- YOU'RE HUNG!!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (m) {
|
||||||
|
case 1:
|
||||||
|
pa[3][6] = "-";
|
||||||
|
pa[3][7] = "-";
|
||||||
|
pa[3][8] = "-";
|
||||||
|
pa[4][5] = "(";
|
||||||
|
pa[4][6] = ".";
|
||||||
|
pa[4][8] = ".";
|
||||||
|
pa[4][9] = ")";
|
||||||
|
pa[5][6] = "-";
|
||||||
|
pa[5][7] = "-";
|
||||||
|
pa[5][8] = "-";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
for (i = 6; i <= 9; i++)
|
||||||
|
pa[i][7] = "X";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
for (i = 4; i <= 7; i++)
|
||||||
|
pa[i][i - 1] = "\\";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
pa[4][11] = "/";
|
||||||
|
pa[5][10] = "/";
|
||||||
|
pa[6][9] = "/";
|
||||||
|
pa[7][8] = "/";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
pa[10][6] = "/";
|
||||||
|
pa[11][5] = "/";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
pa[10][8] = "\\";
|
||||||
|
pa[11][9] = "\\";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
pa[3][11] = "\\";
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
pa[3][3] = "/";
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
pa[12][10] = "\\";
|
||||||
|
pa[12][11] = "-";
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
pa[12][3] = "-";
|
||||||
|
pa[12][4] = "/";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (i = 1; i <= 12; i++) {
|
||||||
|
str = "";
|
||||||
|
for (j = 1; j <= 12; j++)
|
||||||
|
str += pa[i][j];
|
||||||
|
print(str + "\n");
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
if (m == 10) {
|
||||||
|
print("SORRY, YOU LOSE. THE WORD WAS " + as + "\n");
|
||||||
|
print("YOU MISSED THAT ONE. DO YOU ");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 1; i <= l; i++)
|
||||||
|
if (da[i] == "-")
|
||||||
|
break;
|
||||||
|
if (i > l) {
|
||||||
|
print("YOU FOUND THE WORD!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
for (i = 1; i <= l; i++)
|
||||||
|
print(da[i]);
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("WHAT IS YOUR GUESS FOR THE WORD");
|
||||||
|
bs = await input();
|
||||||
|
if (as == bs) {
|
||||||
|
print("RIGHT!! IT TOOK YOU " + t1 + " GUESSES!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
print("WRONG. TRY ANOTHER LETTER.\n");
|
||||||
|
print("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("WANT ANOTHER WORD");
|
||||||
|
str = await input();
|
||||||
|
if (str != "YES")
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print("IT'S BEEN FUN! BYE FOR NOW.\n");
|
||||||
|
// Lines 620 and 990 unused in original
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
9
45 Hello/javascript/hello.html
Normal file
9
45 Hello/javascript/hello.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>HELLO</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<pre id="output" style="font-size: 12pt;"></pre>
|
||||||
|
<script src="hello.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
163
45 Hello/javascript/hello.js
Normal file
163
45 Hello/javascript/hello.js
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
// HELLO
|
||||||
|
//
|
||||||
|
// 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 control section
|
||||||
|
async function main()
|
||||||
|
{
|
||||||
|
print(tab(33) + "HELLO\n");
|
||||||
|
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("HELLO. MY NAME IS CREATIVE COMPUTER.\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
print("WHAT'S YOUR NAME");
|
||||||
|
ns = await input();
|
||||||
|
print("\n");
|
||||||
|
print("HI THERE, " + ns + ", ARE YOU ENJOYING YOURSELF HERE");
|
||||||
|
while (1) {
|
||||||
|
bs = await input();
|
||||||
|
print("\n");
|
||||||
|
if (bs == "YES") {
|
||||||
|
print("I'M GLAD TO HEAR THAT, " + ns + ".\n");
|
||||||
|
print("\n");
|
||||||
|
break;
|
||||||
|
} else if (bs == "NO") {
|
||||||
|
print("OH, I'M SORRY TO HEAR THAT, " + ns + ". MAYBE WE CAN\n");
|
||||||
|
print("BRIGHTEN UP YOUR VISIT A BIT.\n");
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
print("PLEASE ANSWER 'YES' OR 'NO'. DO YOU LIKE IT HERE");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print("SAY, " + ns + ", I CAN SOLVED ALL KINDS OF PROBLEMS EXCEPT\n");
|
||||||
|
print("THOSE DEALING WITH GREECE. WHAT KIND OF PROBLEMS DO\n");
|
||||||
|
print("YOU HAVE (ANSWER SEX, HEALTH, MONEY, OR JOB)");
|
||||||
|
while (1) {
|
||||||
|
cs = await input();
|
||||||
|
print("\n");
|
||||||
|
if (cs != "SEX" && cs != "HEALTH" && cs != "MONEY" && cs != "JOB") {
|
||||||
|
print("OH, " + ns + ", YOUR ANSWER OF " + cs + " IS GREEK TO ME.\n");
|
||||||
|
} else if (cs == "JOB") {
|
||||||
|
print("I CAN SYMPATHIZE WITH YOU " + ns + ". I HAVE TO WORK\n");
|
||||||
|
print("VERY LONG HOURS FOR NO PAY -- AND SOME OF MY BOSSES\n");
|
||||||
|
print("REALLY BEAT ON MY KEYBOARD. MY ADVICE TO YOU, " + ns + ",\n");
|
||||||
|
print("IS TO OPEN A RETAIL COMPUTER STORE. IT'S GREAT FUN.\n");
|
||||||
|
} else if (cs == "MONEY") {
|
||||||
|
print("SORRY, " + ns + ", I'M BROKE TOO. WHY DON'T YOU SELL\n");
|
||||||
|
print("ENCYCLOPEADIAS OR MARRY SOMEONE RICH OR STOP EATING\n");
|
||||||
|
print("SO YOU WON'T NEED SO MUCH MONEY?\n");
|
||||||
|
} else if (cs == "HEALTH") {
|
||||||
|
print("MY ADVICE TO YOU " + ns + " IS:\n");
|
||||||
|
print(" 1. TAKE TWO ASPRIN\n");
|
||||||
|
print(" 2. DRINK PLENTY OF FLUIDS (ORANGE JUICE, NOT BEER!)\n");
|
||||||
|
print(" 3. GO TO BED (ALONE)\n");
|
||||||
|
} else {
|
||||||
|
print("IS YOUR PROBLEM TOO MUCH OR TOO LITTLE");
|
||||||
|
while (1) {
|
||||||
|
ds = await input();
|
||||||
|
print("\n");
|
||||||
|
if (ds == "TOO MUCH") {
|
||||||
|
print("YOU CALL THAT A PROBLEM?!! I SHOULD HAVE SUCH PROBLEMS!\n");
|
||||||
|
print("IF IT BOTHERS YOU, " + ns + ", TAKE A COLD SHOWER.\n");
|
||||||
|
break;
|
||||||
|
} else if (ds == "TOO LITTLE") {
|
||||||
|
print("WHY ARE YOU HERE IN SUFFERN, " + ns + "? YOU SHOULD BE\n");
|
||||||
|
print("IN TOKYO OR NEW YORK OR AMSTERDAM OR SOMEPLACE WITH SOME\n");
|
||||||
|
print("REAL ACTION.\n");
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
print("DON'T GET ALL SHOOK, " + ns + ", JUST ANSWER THE QUESTION\n");
|
||||||
|
print("WITH 'TOO MUCH' OR 'TOO LITTLE'. WHICH IS IT");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print("ANY MORE PROBLEMS YOU WANT SOLVED, " + ns);
|
||||||
|
es = await input();
|
||||||
|
print("\n");
|
||||||
|
if (es == "YES") {
|
||||||
|
print("WHAT KIND (SEX, MONEY, HEALTH, JOB)");
|
||||||
|
} else if (es == "NO") {
|
||||||
|
print("THAT WILL BE $5.00 FOR THE ADVICE, " + ns + ".\n");
|
||||||
|
print("PLEASE LEAVE THE MONEY ON THE TERMINAL.\n");
|
||||||
|
print("\n");
|
||||||
|
// d = new Date().valueOf();
|
||||||
|
// while (new Date().valueOf() - d < 2000) ;
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
while (1) {
|
||||||
|
print("DID YOU LEAVE THE MONEY");
|
||||||
|
gs = await input();
|
||||||
|
print("\n");
|
||||||
|
if (gs == "YES") {
|
||||||
|
print("HEY, " + ns + "??? YOU LEFT NO MONEY AT ALL!\n");
|
||||||
|
print("YOU ARE CHEATING ME OUT OF MY HARD-EARNED LIVING.\n");
|
||||||
|
print("\n");
|
||||||
|
print("WHAT A RIP OFF, " + ns + "!!!\n");
|
||||||
|
print("\n");
|
||||||
|
break;
|
||||||
|
} else if (gs == "NO") {
|
||||||
|
print("THAT'S HONEST, " + ns + ", BUT HOW DO YOU EXPECT\n");
|
||||||
|
print("ME TO GO ON WITH MY PSYCHOLOGY STUDIES IF MY PATIENT\n");
|
||||||
|
print("DON'T PAY THEIR BILLS?\n");
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
print("YOUR ANSWER OF '" + gs + "' CONFUSES ME, " + ns + ".\n");
|
||||||
|
print("PLEASE RESPOND WITH 'YES' OR 'NO'.\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print("\n");
|
||||||
|
print("TAKE A WALK, " + ns + ".\n");
|
||||||
|
print("\n");
|
||||||
|
print("\n");
|
||||||
|
// Line 390 not used in original
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
Reference in New Issue
Block a user