Advertisement
Guest User

Untitled

a guest
May 20th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. {-
  2. HiLo
  3. Number guessing game.
  4.  
  5. Written as a way to teach me Haskell.
  6. -}
  7.  
  8.  
  9. import System.Exit
  10. import System.Random
  11.  
  12. -- User gets this many guesses to correctly guess the number, or they lose.
  13. maxGuesses = 3 :: Integer
  14.  
  15. -- The maximum and minimum number the random number will be,
  16. -- which the user must guess.
  17. randomMinimum = 1 :: Integer
  18. randomMaximum = 10 :: Integer
  19.  
  20. guessNumber winningInteger triesLeft = do
  21. if triesLeft == 0
  22. then do putStrLn "You are out of guesses! You lose!\n"
  23. exitSuccess
  24. else do
  25. -- Welcome user to the game. "I am thinking random between x and y..."
  26. putStrLn ("I am thinking of a number between " ++ (show randomMinimum) ++ " and " ++ (show randomMaximum) ++ "!")
  27.  
  28. -- Ask user to guess a number.
  29. putStrLn ("Please guess a number. You have " ++ (show triesLeft) ++ " tries left!\n")
  30. guess <- getLine
  31.  
  32. case compare (read guess :: Integer) winningInteger of
  33. LT -> do putStrLn "Too low!"
  34. guessNumber winningInteger (triesLeft - 1)
  35. GT -> do putStrLn "Too high!"
  36. guessNumber winningInteger (triesLeft - 1)
  37. EQ -> putStrLn "You Win!"
  38.  
  39.  
  40. main = do
  41. winningNumber <- randomRIO (randomMinimum, randomMaximum)
  42. guessNumber winningNumber maxGuesses
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement