Skip to content

Commit 50fedb2

Browse files
committed
implement 96_Word as node.js script
1 parent dc8bb27 commit 50fedb2

File tree

3 files changed

+115
-11
lines changed

3 files changed

+115
-11
lines changed

96_Word/javascript/word.html

Lines changed: 0 additions & 10 deletions
This file was deleted.

96_Word/javascript/word.mjs

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
#!/usr/bin/env node
2+
// WORD
3+
//
4+
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
5+
6+
import { print, tab, input } from '../../00_Common/javascript/common.mjs';
7+
8+
// These are the words that the game knows about> If you want a bigger challenge you could add more words to the array
9+
const WORDS = ["DINKY", "SMOKE", "WATER", "GLASS", "TRAIN",
10+
"MIGHT", "FIRST", "CANDY", "CHAMP", "WOULD",
11+
"CLUMP", "DOPEY"];
12+
const WORD_COUNT = WORDS.length;
13+
14+
// Main control section
15+
async function main()
16+
{
17+
print(tab(33) + "WORD\n");
18+
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
19+
print("\n");
20+
print("\n");
21+
print("\n");
22+
print("I AM THINKING OF A WORD -- YOU GUESS IT. I WILL GIVE YOU\n");
23+
print("CLUES TO HELP YOU GET IT. GOOD LUCK!!\n");
24+
print("\n");
25+
print("\n");
26+
outer: while (1) {
27+
print("\n");
28+
print("\n");
29+
print("YOU ARE STARTING A NEW GAME...\n");
30+
31+
const secretWord = WORDS[Math.floor(Math.random() * WORD_COUNT)];
32+
33+
let guessCount = 0;
34+
// This array holds the letters which have been found in the correct position across all guesses
35+
// For instance if the word is "PLAIN" and the guesses so far are
36+
// "SHALL" ("A" correct) and "CLIMB" ("L" correct) then it will hold "-LA--"
37+
const knownLetters = [];
38+
for (let i = 0; i < 5; i++)
39+
knownLetters[i] = "-";
40+
41+
let guess = undefined;
42+
while (1) {
43+
print("GUESS A FIVE LETTER WORD:");
44+
guess = (await input()).toUpperCase();
45+
guessCount++;
46+
if (secretWord === guess) {
47+
// The player has guessed correctly
48+
break;
49+
}
50+
51+
if (guess.charAt(0) === "?") {
52+
// Player has given up
53+
print("THE SECRET WORD IS " + secretWord + "\n");
54+
print("\n");
55+
// Start a new game by going to the start of the outer while loop
56+
continue outer;
57+
}
58+
59+
if (guess.length !== 5) {
60+
print("YOU MUST GUESS A 5 LETTER WORD. START AGAIN.\n");
61+
print("\n");
62+
guessCount--;
63+
continue;
64+
}
65+
66+
// Two things happen in this double loop:
67+
// 1. Letters which are in both the guessed and secret words are put in the lettersInCommon array
68+
// 2. Letters which are in the correct position in the guessed word are added to the knownLetters array
69+
let lettersInCommonCount = 0;
70+
const lettersInCommon = [];
71+
for (let i = 0; i < 5; i++) {// loop round characters in secret word
72+
let secretWordCharacter = secretWord.charAt(i);
73+
for (let j = 0; j < 5; j++) {// loop round characters in guessed word
74+
let guessedWordCharacter = guess.charAt(j);
75+
if (secretWordCharacter === guessedWordCharacter) {
76+
lettersInCommon[lettersInCommonCount] = guessedWordCharacter;
77+
if (i === j) {
78+
// Letter is in the exact position so add to the known letters array
79+
knownLetters[j] = guessedWordCharacter;
80+
}
81+
lettersInCommonCount++;
82+
}
83+
}
84+
}
85+
86+
const lettersInCommonText = lettersInCommon.join("");
87+
print("THERE WERE " + lettersInCommonCount + " MATCHES AND THE COMMON LETTERS WERE... " + lettersInCommonText + "\n");
88+
89+
const knownLettersText = knownLetters.join("");
90+
print("FROM THE EXACT LETTER MATCHES, YOU KNOW............ " + knownLettersText + "\n");
91+
92+
if (knownLettersText === secretWord) {
93+
guess = knownLettersText;
94+
break;
95+
}
96+
97+
if (lettersInCommonCount <= 1) {
98+
print("\n");
99+
print("IF YOU GIVE UP, TYPE '?' FOR YOUR NEXT GUESS.\n");
100+
print("\n");
101+
}
102+
}
103+
104+
print("YOU HAVE GUESSED THE WORD. IT TOOK " + guessCount + " GUESSES!\n");
105+
print("\n");
106+
107+
print("WANT TO PLAY AGAIN");
108+
const playAgainResponse = (await input()).toUpperCase();
109+
if (playAgainResponse !== "YES")
110+
break;
111+
}
112+
}
113+
114+
main();

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>BASIC Computer Games</title><link rel="stylesheet" href="./00_Utilities/javascript/style_terminal.css" /></head><body><article id="output"><header><h1>BASIC Computer Games</h1></header><main><ul><li><a href="01_Acey_Ducey/javascript/aceyducey.html">01 Acey_Ducey</a></li><li><a href="02_Amazing/javascript/amazing.html">02 Amazing</a></li><li><a href="03_Animal/javascript/animal.html">03 Animal</a></li><li><a href="04_Awari/javascript/awari.html">04 Awari</a></li><li><a href="05_Bagels/javascript/bagels.html">05 Bagels</a></li><li><a href="06_Banner/javascript/banner.html">06 Banner</a></li><li><a href="07_Basketball/javascript/basketball.html">07 Basketball</a></li><li><a href="08_Batnum/javascript/batnum.html">08 Batnum</a></li><li><a href="09_Battle/javascript/battle.html">09 Battle</a></li><li><a href="10_Blackjack/javascript/blackjack.html">10 Blackjack</a></li><li><a href="11_Bombardment/javascript/bombardment.html">11 Bombardment</a></li><li><a href="12_Bombs_Away/javascript/bombsaway.html">12 Bombs_Away</a></li><li><a href="13_Bounce/javascript/bounce.html">13 Bounce</a></li><li><a href="14_Bowling/javascript/bowling.html">14 Bowling</a></li><li><a href="15_Boxing/javascript/boxing.html">15 Boxing</a></li><li><a href="16_Bug/javascript/bug.html">16 Bug</a></li><li><a href="17_Bullfight/javascript/bullfight.html">17 Bullfight</a></li><li><a href="18_Bullseye/javascript/bullseye.html">18 Bullseye</a></li><li><a href="19_Bunny/javascript/bunny.html">19 Bunny</a></li><li><a href="20_Buzzword/javascript/buzzword.html">20 Buzzword</a></li><li><a href="21_Calendar/javascript/calendar.html">21 Calendar</a></li><li><a href="22_Change/javascript/change.html">22 Change</a></li><li><a href="23_Checkers/javascript/checkers.html">23 Checkers</a></li><li><a href="24_Chemist/javascript/chemist.html">24 Chemist</a></li><li><a href="25_Chief/javascript/chief.html">25 Chief</a></li><li><a href="26_Chomp/javascript/chomp.html">26 Chomp</a></li><li><a href="27_Civil_War/javascript/civilwar.html">27 Civil_War</a></li><li><a href="28_Combat/javascript/combat.html">28 Combat</a></li><li><a href="29_Craps/javascript/craps.html">29 Craps</a></li><li><a href="30_Cube/javascript/cube.html">30 Cube</a></li><li><a href="31_Depth_Charge/javascript/depthcharge.html">31 Depth_Charge</a></li><li><a href="32_Diamond/javascript/diamond.html">32 Diamond</a></li><li><a href="33_Dice/javascript/dice.html">33 Dice</a></li><li><a href="34_Digits/javascript/digits.html">34 Digits</a></li><li><span>35 Even_Wins</span><ul><li><a href="35_Even_Wins/javascript/evenwins.html">evenwins</a></li><li><a href="35_Even_Wins/javascript/gameofevenwins.html">gameofevenwins</a></li></ul></li><li><a href="36_Flip_Flop/javascript/flipflop.html">36 Flip_Flop</a></li><li><span>37 Football</span><ul><li><a href="37_Football/javascript/football.html">football</a></li><li><a href="37_Football/javascript/ftball.html">ftball</a></li></ul></li><li><a href="38_Fur_Trader/javascript/furtrader.html">38 Fur_Trader</a></li><li><a href="39_Golf/javascript/golf.html">39 Golf</a></li><li><a href="40_Gomoko/javascript/gomoko.html">40 Gomoko</a></li><li><a href="41_Guess/javascript/guess.html">41 Guess</a></li><li><a href="42_Gunner/javascript/gunner.html">42 Gunner</a></li><li><a href="43_Hammurabi/javascript/hammurabi.html">43 Hammurabi</a></li><li><a href="44_Hangman/javascript/hangman.html">44 Hangman</a></li><li><a href="45_Hello/javascript/hello.html">45 Hello</a></li><li><a href="46_Hexapawn/javascript/hexapawn.html">46 Hexapawn</a></li><li><a href="47_Hi-Lo/javascript/hi-lo.html">47 Hi-Lo</a></li><li><a href="48_High_IQ/javascript/highiq.html">48 High_IQ</a></li><li><a href="49_Hockey/javascript/hockey.html">49 Hockey</a></li><li><a href="50_Horserace/javascript/horserace.html">50 Horserace</a></li><li><a href="51_Hurkle/javascript/hurkle.html">51 Hurkle</a></li><li><a href="52_Kinema/javascript/kinema.html">52 Kinema</a></li><li><a href="53_King/javascript/king.html">53 King</a></li><li><a href="54_Letter/javascript/letter.html">54 Letter</a></li><li><a href="55_Life/javascript/life.html">55 Life</a></li><li><a href="56_Life_for_Two/javascript/lifefortwo.html">56 Life_for_Two</a></li><li><span>57 Literature_Quiz</span><ul><li><a href="57_Literature_Quiz/javascript/litquiz.html">litquiz</a></li><li><a href="./00_Common/javascript/WebTerminal/terminal.html#57_Literature_Quiz/javascript/litquiz.mjs">litquiz (node.js)</a></li></ul></li><li><a href="58_Love/javascript/love.html">58 Love</a></li><li><span>59 Lunar_LEM_Rocket</span><ul><li><a href="59_Lunar_LEM_Rocket/javascript/lem.html">lem</a></li><li><a href="59_Lunar_LEM_Rocket/javascript/lunar.html">lunar</a></li></ul></li><li><a href="60_Mastermind/javascript/mastermind.html">60 Mastermind</a></li><li><a href="61_Math_Dice/javascript/mathdice.html">61 Math_Dice</a></li><li><a href="62_Mugwump/javascript/mugwump.html">62 Mugwump</a></li><li><a href="63_Name/javascript/name.html">63 Name</a></li><li><a href="64_Nicomachus/javascript/nicomachus.html">64 Nicomachus</a></li><li><a href="65_Nim/javascript/nim.html">65 Nim</a></li><li><a href="66_Number/javascript/number.html">66 Number</a></li><li><a href="67_One_Check/javascript/onecheck.html">67 One_Check</a></li><li><a href="68_Orbit/javascript/orbit.html">68 Orbit</a></li><li><a href="69_Pizza/javascript/pizza.html">69 Pizza</a></li><li><a href="70_Poetry/javascript/poetry.html">70 Poetry</a></li><li><a href="71_Poker/javascript/poker.html">71 Poker</a></li><li><a href="72_Queen/javascript/queen.html">72 Queen</a></li><li><a href="73_Reverse/javascript/reverse.html">73 Reverse</a></li><li><a href="./00_Common/javascript/WebTerminal/terminal.html#74_Rock_Scissors_Paper/javascript/rockscissors.mjs">74 Rock_Scissors_Paper (node.js)</a></li><li><a href="75_Roulette/javascript/roulette.html">75 Roulette</a></li><li><a href="76_Russian_Roulette/javascript/russianroulette.html">76 Russian_Roulette</a></li><li><a href="77_Salvo/javascript/salvo.html">77 Salvo</a></li><li><a href="./00_Common/javascript/WebTerminal/terminal.html#78_Sine_Wave/javascript/sinewave.mjs">78 Sine_Wave (node.js)</a></li><li><a href="79_Slalom/javascript/slalom.html">79 Slalom</a></li><li><a href="80_Slots/javascript/slots.html">80 Slots</a></li><li><a href="81_Splat/javascript/splat.html">81 Splat</a></li><li><a href="82_Stars/javascript/stars.html">82 Stars</a></li><li><a href="83_Stock_Market/javascript/stockmarket.html">83 Stock_Market</a></li><li><a href="84_Super_Star_Trek/javascript/index.html">84 Super_Star_Trek</a></li><li><a href="85_Synonym/javascript/synonym.html">85 Synonym</a></li><li><a href="86_Target/javascript/target.html">86 Target</a></li><li><a href="87_3-D_Plot/javascript/3dplot.html">87 3-D_Plot</a></li><li><a href="88_3-D_Tic-Tac-Toe/javascript/qubit.html">88 3-D_Tic-Tac-Toe</a></li><li><span>89 Tic-Tac-Toe</span><ul><li><a href="89_Tic-Tac-Toe/javascript/tictactoe1.html">tictactoe1</a></li><li><a href="89_Tic-Tac-Toe/javascript/tictactoe2.html">tictactoe2</a></li></ul></li><li><a href="90_Tower/javascript/tower.html">90 Tower</a></li><li><a href="91_Train/javascript/train.html">91 Train</a></li><li><a href="92_Trap/javascript/trap.html">92 Trap</a></li><li><a href="93_23_Matches/javascript/23matches.html">93 23_Matches</a></li><li><a href="94_War/javascript/war.html">94 War</a></li><li><a href="95_Weekday/javascript/weekday.html">95 Weekday</a></li><li><a href="96_Word/javascript/word.html">96 Word</a></li></ul></main></article></body></html>
1+
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>BASIC Computer Games</title><link rel="stylesheet" href="./00_Utilities/javascript/style_terminal.css" /></head><body><article id="output"><header><h1>BASIC Computer Games</h1></header><main><ul><li><a href="01_Acey_Ducey/javascript/aceyducey.html">01 Acey_Ducey</a></li><li><a href="02_Amazing/javascript/amazing.html">02 Amazing</a></li><li><a href="03_Animal/javascript/animal.html">03 Animal</a></li><li><a href="04_Awari/javascript/awari.html">04 Awari</a></li><li><a href="05_Bagels/javascript/bagels.html">05 Bagels</a></li><li><a href="06_Banner/javascript/banner.html">06 Banner</a></li><li><a href="07_Basketball/javascript/basketball.html">07 Basketball</a></li><li><a href="08_Batnum/javascript/batnum.html">08 Batnum</a></li><li><a href="09_Battle/javascript/battle.html">09 Battle</a></li><li><a href="10_Blackjack/javascript/blackjack.html">10 Blackjack</a></li><li><a href="11_Bombardment/javascript/bombardment.html">11 Bombardment</a></li><li><a href="12_Bombs_Away/javascript/bombsaway.html">12 Bombs_Away</a></li><li><a href="13_Bounce/javascript/bounce.html">13 Bounce</a></li><li><a href="14_Bowling/javascript/bowling.html">14 Bowling</a></li><li><a href="15_Boxing/javascript/boxing.html">15 Boxing</a></li><li><a href="16_Bug/javascript/bug.html">16 Bug</a></li><li><a href="17_Bullfight/javascript/bullfight.html">17 Bullfight</a></li><li><a href="18_Bullseye/javascript/bullseye.html">18 Bullseye</a></li><li><a href="19_Bunny/javascript/bunny.html">19 Bunny</a></li><li><a href="20_Buzzword/javascript/buzzword.html">20 Buzzword</a></li><li><a href="21_Calendar/javascript/calendar.html">21 Calendar</a></li><li><a href="22_Change/javascript/change.html">22 Change</a></li><li><a href="23_Checkers/javascript/checkers.html">23 Checkers</a></li><li><a href="24_Chemist/javascript/chemist.html">24 Chemist</a></li><li><a href="25_Chief/javascript/chief.html">25 Chief</a></li><li><a href="26_Chomp/javascript/chomp.html">26 Chomp</a></li><li><a href="27_Civil_War/javascript/civilwar.html">27 Civil_War</a></li><li><a href="28_Combat/javascript/combat.html">28 Combat</a></li><li><a href="29_Craps/javascript/craps.html">29 Craps</a></li><li><a href="30_Cube/javascript/cube.html">30 Cube</a></li><li><a href="31_Depth_Charge/javascript/depthcharge.html">31 Depth_Charge</a></li><li><a href="32_Diamond/javascript/diamond.html">32 Diamond</a></li><li><a href="33_Dice/javascript/dice.html">33 Dice</a></li><li><a href="34_Digits/javascript/digits.html">34 Digits</a></li><li><span>35 Even_Wins</span><ul><li><a href="35_Even_Wins/javascript/evenwins.html">evenwins</a></li><li><a href="35_Even_Wins/javascript/gameofevenwins.html">gameofevenwins</a></li></ul></li><li><a href="36_Flip_Flop/javascript/flipflop.html">36 Flip_Flop</a></li><li><span>37 Football</span><ul><li><a href="37_Football/javascript/football.html">football</a></li><li><a href="37_Football/javascript/ftball.html">ftball</a></li></ul></li><li><a href="38_Fur_Trader/javascript/furtrader.html">38 Fur_Trader</a></li><li><a href="39_Golf/javascript/golf.html">39 Golf</a></li><li><a href="40_Gomoko/javascript/gomoko.html">40 Gomoko</a></li><li><a href="41_Guess/javascript/guess.html">41 Guess</a></li><li><a href="42_Gunner/javascript/gunner.html">42 Gunner</a></li><li><a href="43_Hammurabi/javascript/hammurabi.html">43 Hammurabi</a></li><li><a href="44_Hangman/javascript/hangman.html">44 Hangman</a></li><li><a href="45_Hello/javascript/hello.html">45 Hello</a></li><li><a href="46_Hexapawn/javascript/hexapawn.html">46 Hexapawn</a></li><li><a href="47_Hi-Lo/javascript/hi-lo.html">47 Hi-Lo</a></li><li><a href="48_High_IQ/javascript/highiq.html">48 High_IQ</a></li><li><a href="49_Hockey/javascript/hockey.html">49 Hockey</a></li><li><a href="50_Horserace/javascript/horserace.html">50 Horserace</a></li><li><a href="51_Hurkle/javascript/hurkle.html">51 Hurkle</a></li><li><a href="52_Kinema/javascript/kinema.html">52 Kinema</a></li><li><a href="53_King/javascript/king.html">53 King</a></li><li><a href="54_Letter/javascript/letter.html">54 Letter</a></li><li><a href="55_Life/javascript/life.html">55 Life</a></li><li><a href="56_Life_for_Two/javascript/lifefortwo.html">56 Life_for_Two</a></li><li><span>57 Literature_Quiz</span><ul><li><a href="57_Literature_Quiz/javascript/litquiz.html">litquiz</a></li><li><a href="./00_Common/javascript/WebTerminal/terminal.html#57_Literature_Quiz/javascript/litquiz.mjs">litquiz (node.js)</a></li></ul></li><li><a href="58_Love/javascript/love.html">58 Love</a></li><li><span>59 Lunar_LEM_Rocket</span><ul><li><a href="59_Lunar_LEM_Rocket/javascript/lem.html">lem</a></li><li><a href="59_Lunar_LEM_Rocket/javascript/lunar.html">lunar</a></li></ul></li><li><a href="60_Mastermind/javascript/mastermind.html">60 Mastermind</a></li><li><a href="61_Math_Dice/javascript/mathdice.html">61 Math_Dice</a></li><li><a href="62_Mugwump/javascript/mugwump.html">62 Mugwump</a></li><li><a href="63_Name/javascript/name.html">63 Name</a></li><li><a href="64_Nicomachus/javascript/nicomachus.html">64 Nicomachus</a></li><li><a href="65_Nim/javascript/nim.html">65 Nim</a></li><li><a href="66_Number/javascript/number.html">66 Number</a></li><li><a href="67_One_Check/javascript/onecheck.html">67 One_Check</a></li><li><a href="68_Orbit/javascript/orbit.html">68 Orbit</a></li><li><a href="69_Pizza/javascript/pizza.html">69 Pizza</a></li><li><a href="70_Poetry/javascript/poetry.html">70 Poetry</a></li><li><a href="71_Poker/javascript/poker.html">71 Poker</a></li><li><a href="72_Queen/javascript/queen.html">72 Queen</a></li><li><a href="73_Reverse/javascript/reverse.html">73 Reverse</a></li><li><a href="./00_Common/javascript/WebTerminal/terminal.html#74_Rock_Scissors_Paper/javascript/rockscissors.mjs">74 Rock_Scissors_Paper (node.js)</a></li><li><a href="75_Roulette/javascript/roulette.html">75 Roulette</a></li><li><a href="76_Russian_Roulette/javascript/russianroulette.html">76 Russian_Roulette</a></li><li><a href="77_Salvo/javascript/salvo.html">77 Salvo</a></li><li><a href="./00_Common/javascript/WebTerminal/terminal.html#78_Sine_Wave/javascript/sinewave.mjs">78 Sine_Wave (node.js)</a></li><li><a href="79_Slalom/javascript/slalom.html">79 Slalom</a></li><li><a href="80_Slots/javascript/slots.html">80 Slots</a></li><li><a href="81_Splat/javascript/splat.html">81 Splat</a></li><li><a href="82_Stars/javascript/stars.html">82 Stars</a></li><li><a href="83_Stock_Market/javascript/stockmarket.html">83 Stock_Market</a></li><li><a href="84_Super_Star_Trek/javascript/index.html">84 Super_Star_Trek</a></li><li><a href="85_Synonym/javascript/synonym.html">85 Synonym</a></li><li><a href="86_Target/javascript/target.html">86 Target</a></li><li><a href="87_3-D_Plot/javascript/3dplot.html">87 3-D_Plot</a></li><li><a href="88_3-D_Tic-Tac-Toe/javascript/qubit.html">88 3-D_Tic-Tac-Toe</a></li><li><span>89 Tic-Tac-Toe</span><ul><li><a href="89_Tic-Tac-Toe/javascript/tictactoe1.html">tictactoe1</a></li><li><a href="89_Tic-Tac-Toe/javascript/tictactoe2.html">tictactoe2</a></li></ul></li><li><a href="90_Tower/javascript/tower.html">90 Tower</a></li><li><a href="91_Train/javascript/train.html">91 Train</a></li><li><a href="92_Trap/javascript/trap.html">92 Trap</a></li><li><a href="93_23_Matches/javascript/23matches.html">93 23_Matches</a></li><li><a href="94_War/javascript/war.html">94 War</a></li><li><a href="95_Weekday/javascript/weekday.html">95 Weekday</a></li><li><a href="./00_Common/javascript/WebTerminal/terminal.html#96_Word/javascript/word.mjs">96 Word (node.js)</a></li></ul></main></article></body></html>

0 commit comments

Comments
 (0)