mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-27 05:03:27 -08:00
Initial Lua Implementation for Hi-Lo
This commit is contained in:
86
47_Hi-Lo/lua/hilo.lua
Normal file
86
47_Hi-Lo/lua/hilo.lua
Normal file
@@ -0,0 +1,86 @@
|
||||
local function hilo (randomNum)
|
||||
local numTries = 0
|
||||
math.randomseed(os.time())
|
||||
|
||||
local randomNum = math.random(1, 100)
|
||||
print(randomNum)
|
||||
|
||||
while numTries < 6 do
|
||||
print("")
|
||||
|
||||
io.write("YOUR GUESS? ")
|
||||
|
||||
local guess = io.read("*n")
|
||||
|
||||
numTries = numTries + 1
|
||||
|
||||
if guess < randomNum then
|
||||
print("YOUR GUESS IS TOO LOW")
|
||||
end
|
||||
|
||||
if guess > randomNum then
|
||||
print("YOUR GUESS IS TOO HIGH")
|
||||
end
|
||||
|
||||
if guess == randomNum then
|
||||
print("GOT IT!!!!!!!!!! YOU WIN " .. randomNum .. " DOLLARS.")
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if numTries == 6 then
|
||||
print("")
|
||||
print("YOU BLEW IT...TOO BAD...THE NUMBER WAS " .. randomNum)
|
||||
return 0
|
||||
else
|
||||
return randomNum
|
||||
end
|
||||
end
|
||||
|
||||
local THIRTY_FOUR_TABS=string.rep("\t",34)
|
||||
print(THIRTY_FOUR_TABS, "HI LO")
|
||||
|
||||
local FIFTEEN_TABS=string.rep("\t",15)
|
||||
print(FIFTEEN_TABS, "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY")
|
||||
|
||||
local THREE_NEWLINES=string.rep("\n", 3)
|
||||
print(THREE_NEWLINES)
|
||||
|
||||
print("THIS IS THE GAME OF HI LO.")
|
||||
print("")
|
||||
print("YOU WILL HAVE 6 TRIES TO GUESS THE AMOUNT OF MONEY IN THE")
|
||||
print("HI LO JACKPOT, WHICH IS BETWEEN 1 AND 100 DOLLARS. IF YOU")
|
||||
print("GUESS THE AMOUNT, YOU WIN ALL THE MONEY IN THE JACKPOT!")
|
||||
print("THEN YOU GET ANOTHER CHANCE TO WIN MORE MONEY. HOWEVER,")
|
||||
print("IF YOU DO NOT GUESS THE AMOUNT, THE GAME ENDS.")
|
||||
|
||||
local wonSoFar = 0
|
||||
|
||||
::continue::
|
||||
local won = 0
|
||||
local won = hilo(randomNum)
|
||||
wonSoFar = won + wonSoFar
|
||||
print("YOUR TOTAL WINNINGS ARE NOW " .. wonSoFar .. " DOLLARS.")
|
||||
|
||||
--- This flush is here because if not then it will keep the newline in the
|
||||
--- input buffer and cause the program to inadvertantly go to the
|
||||
--- Invalid Answer!
|
||||
--- part of the code which we don't want the program to do. Appears to be a
|
||||
--- Lua-ism.
|
||||
|
||||
io.stdin:flush()
|
||||
io.write("PLAY AGAIN (YES OR NO)? ")
|
||||
answer = io.read()
|
||||
|
||||
while(not(answer == "YES" or answer == "NO")) do
|
||||
io.write("Invalid Answer! Try again (YES/NO): ")
|
||||
answer = io.read()
|
||||
end
|
||||
|
||||
if answer == "YES" then
|
||||
goto continue
|
||||
else
|
||||
print("")
|
||||
print("SO LONG. HOPE YOU ENJOYED YOURSELF!!!")
|
||||
os.exit()
|
||||
end
|
||||
Reference in New Issue
Block a user