Skip to content

Instantly share code, notes, and snippets.

@somarlyonks
Created October 31, 2018 02:17
Show Gist options
  • Save somarlyonks/51e9e452f6081904d95b88a6828ae04b to your computer and use it in GitHub Desktop.
Save somarlyonks/51e9e452f6081904d95b88a6828ae04b to your computer and use it in GitHub Desktop.
guess
module Main
import System
readNumber : IO (Maybe Nat)
readNumber = do
input <- getLine
if all isDigit $ unpack input
then pure (Just $ cast input)
else pure Nothing
guess : (target: Nat) -> IO ()
guess target = do
putStr "Guess> "
Just answer <- readNumber | Nothing => retry "Invalid input"
if answer > target
then retry "Too high"
else if answer < target
then retry "Too low"
else putStrLn "Bingo!"
where
retry : String -> IO ()
retry msg = do
putStrLn msg
guess target
main : IO()
main = do
putStrLn "Guess a number between 0 and 100."
randomNum <- time
guess (cast $ randomNum `mod` 100)
from random import random
def guess(target):
def retry(msg):
print(msg)
guess(target)
try:
answer = int(input('Guess> '))
except ValueError:
retry('Invalid input')
if answer > target:
retry('Too high')
elif answer < target:
retry('Too low')
else:
print('Bingo!')
def main():
print('Guess a number between 0 and 100.')
target = int(random() * 100)
guess(target)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment