Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {-
- HiLo
- Number guessing game.
- Written as a way to teach me Haskell.
- -}
- import System.Exit
- import System.Random
- -- User gets this many guesses to correctly guess the number, or they lose.
- maxGuesses = 3 :: Integer
- -- The maximum and minimum number the random number will be,
- -- which the user must guess.
- randomMinimum = 1 :: Integer
- randomMaximum = 10 :: Integer
- guessNumber winningInteger triesLeft = do
- if triesLeft == 0
- then do putStrLn "You are out of guesses! You lose!\n"
- exitSuccess
- else do
- -- Welcome user to the game. "I am thinking random between x and y..."
- putStrLn ("I am thinking of a number between " ++ (show randomMinimum) ++ " and " ++ (show randomMaximum) ++ "!")
- -- Ask user to guess a number.
- putStrLn ("Please guess a number. You have " ++ (show triesLeft) ++ " tries left!\n")
- guess <- getLine
- case compare (read guess :: Integer) winningInteger of
- LT -> do putStrLn "Too low!"
- guessNumber winningInteger (triesLeft - 1)
- GT -> do putStrLn "Too high!"
- guessNumber winningInteger (triesLeft - 1)
- EQ -> putStrLn "You Win!"
- main = do
- winningNumber <- randomRIO (randomMinimum, randomMaximum)
- guessNumber winningNumber maxGuesses
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement