mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-21 23:00:43 -08:00
Added MiniScript version of 44_Hangman.
This commit is contained in:
16
00_Alternate_Languages/44_Hangman/MiniScript/README.md
Normal file
16
00_Alternate_Languages/44_Hangman/MiniScript/README.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
|
||||||
|
|
||||||
|
Conversion to [MiniScript](https://miniscript.org).
|
||||||
|
|
||||||
|
Ways to play:
|
||||||
|
|
||||||
|
1. Command-Line MiniScript:
|
||||||
|
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
|
||||||
|
|
||||||
|
miniscript hangman.ms
|
||||||
|
|
||||||
|
2. Mini Micro:
|
||||||
|
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
|
||||||
|
|
||||||
|
load "hangman"
|
||||||
|
run
|
||||||
127
00_Alternate_Languages/44_Hangman/MiniScript/hangman.ms
Normal file
127
00_Alternate_Languages/44_Hangman/MiniScript/hangman.ms
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
print " "*32 + "Hangman"
|
||||||
|
print " "*15 + "Creative Computing Morristown, New Jersey"
|
||||||
|
print; print; print
|
||||||
|
|
||||||
|
words = []
|
||||||
|
words += ["gum","sin","for","cry","lug","bye","fly"]
|
||||||
|
words += ["ugly","each","from","work","talk","with","self"]
|
||||||
|
words += ["pizza","thing","feign","fiend","elbow","fault","dirty"]
|
||||||
|
words += ["budget","spirit","quaint","maiden","escort","pickax"]
|
||||||
|
words += ["example","tension","quinine","kidney","replica","sleeper"]
|
||||||
|
words += ["triangle","kangaroo","mahogany","sergeant","sequence"]
|
||||||
|
words += ["moustache","dangerous","scientist","different","quiescent"]
|
||||||
|
words += ["magistrate","erroneously","loudspeaker","phytotoxic"]
|
||||||
|
words += ["matrimonial","parasympathomimetic","thigmotropism"]
|
||||||
|
// Note: on Mini Micro, you could instead do:
|
||||||
|
// words = file.readLines("/sys/data/englishWords.txt")
|
||||||
|
|
||||||
|
words.shuffle
|
||||||
|
|
||||||
|
addToPic = function(guessCount)
|
||||||
|
if guessCount == 1 then
|
||||||
|
print "First, we draw a head"
|
||||||
|
ps[3][6]="-"; ps[3][7]="-"; ps[3][8]="-"; ps[4][5]="("; ps[4][6]="."
|
||||||
|
ps[4][8]="."; ps[4][9]=")"; ps[5][6]="-"; ps[5][7]="-"; ps[5][8]="-"
|
||||||
|
else if guessCount == 2 then
|
||||||
|
print "Now we draw a body."
|
||||||
|
for i in range(6, 9); ps[i][7]="x"; end for
|
||||||
|
else if guessCount == 3 then
|
||||||
|
print "Next we draw an arm."
|
||||||
|
for i in range(4, 7); ps[i][i-1]="\"; end for
|
||||||
|
else if guessCount == 4 then
|
||||||
|
print "This time it's the other arm."
|
||||||
|
ps[4][11]="/"; ps[5][10]="/"; ps[6][9]="/"; ps[7][8]="/"
|
||||||
|
else if guessCount == 5 then
|
||||||
|
print "Now, let's draw the right leg."
|
||||||
|
ps[10][6]="/"; ps[11][5]="/"
|
||||||
|
else if guessCount == 6 then
|
||||||
|
print "This time we draw the left leg."
|
||||||
|
ps[10][8]="\"; ps[11][9]="\"
|
||||||
|
else if guessCount == 7 then
|
||||||
|
print "Now we put up a hand."
|
||||||
|
ps[3][11]="\"
|
||||||
|
else if guessCount == 8 then
|
||||||
|
print "Next the other hand."
|
||||||
|
ps[3][3]="/"
|
||||||
|
else if guessCount == 9 then
|
||||||
|
print "Now we draw one foot"
|
||||||
|
ps[12][10]="\"; ps[12][11]="-"
|
||||||
|
else if guessCount == 10 then
|
||||||
|
print "Here's the other foot -- you're hung!!"
|
||||||
|
ps[12][3]="-"; ps[12][4]="/"
|
||||||
|
end if
|
||||||
|
for i in range(1, 12)
|
||||||
|
print ps[i].join("")
|
||||||
|
end for
|
||||||
|
print
|
||||||
|
end function
|
||||||
|
|
||||||
|
doOneGame = function
|
||||||
|
usedLetters = []
|
||||||
|
globals.ps = []
|
||||||
|
for i in range(0, 12); ps.push [" "]*12; end for
|
||||||
|
for i in range(1,12); ps[i][1] = "X"; end for
|
||||||
|
for i in range(1, 7); ps[1][i] = "X"; end for; ps[2][7] = "X"
|
||||||
|
secretWord = words.pull.upper
|
||||||
|
print "(Secret word: " + secretWord + ")"
|
||||||
|
visibleWord = ["-"] * secretWord.len
|
||||||
|
wrongGuesses = 0
|
||||||
|
while true
|
||||||
|
print "Here are the letters you used:"
|
||||||
|
print usedLetters.join(",")
|
||||||
|
print
|
||||||
|
print visibleWord.join("")
|
||||||
|
print
|
||||||
|
guess = input("What is your guess? ").upper
|
||||||
|
guess = (guess + " ")[0]
|
||||||
|
if guess < "A" or guess > "Z" then continue
|
||||||
|
if usedLetters.indexOf(guess) != null then
|
||||||
|
print "You guessed that letter before!"
|
||||||
|
continue
|
||||||
|
end if
|
||||||
|
usedLetters.push guess
|
||||||
|
for i in visibleWord.indexes
|
||||||
|
if secretWord[i] == guess then visibleWord[i] = guess
|
||||||
|
end for
|
||||||
|
if visibleWord.indexOf("-") == null then
|
||||||
|
print "You found the word!"
|
||||||
|
return true
|
||||||
|
else if secretWord.indexOf(guess) != null then
|
||||||
|
print
|
||||||
|
print visibleWord.join("")
|
||||||
|
print
|
||||||
|
guess = input("What is your guess for the word? ").upper
|
||||||
|
if guess == secretWord then
|
||||||
|
print "Right!! It took you " + usedLetters.len + " guesses!"
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
print "Wrong. Try another letter."
|
||||||
|
end if
|
||||||
|
print
|
||||||
|
else
|
||||||
|
print "Sorry, that letter isn't in the word."
|
||||||
|
wrongGuesses += 1
|
||||||
|
addToPic wrongGuesses
|
||||||
|
if wrongGuesses > 9 then
|
||||||
|
print "Sorry, you lose. The word was " + secretWord
|
||||||
|
return false
|
||||||
|
end if
|
||||||
|
end if
|
||||||
|
end while
|
||||||
|
end function
|
||||||
|
|
||||||
|
while true
|
||||||
|
if not words then
|
||||||
|
print "You did all the words!!"
|
||||||
|
break
|
||||||
|
end if
|
||||||
|
won = doOneGame
|
||||||
|
if won then
|
||||||
|
yn = input("Want another word? ").upper
|
||||||
|
else
|
||||||
|
yn = input("You missed that one. Do you want another word? ").upper
|
||||||
|
end if
|
||||||
|
if not yn or yn[0] != "Y" then break
|
||||||
|
end while
|
||||||
|
print
|
||||||
|
print "It's been fun! Bye for now."
|
||||||
Reference in New Issue
Block a user