import Control.Concurrent
import System.Random
import Text.Printf
import System.IO
import System.Timeout
main = do
hSetBuffering stdout NoBuffering
loop 0
where
loop :: Int -> IO ()
loop score = do
printf "current score: %d\n" score
a <- randomRIO (0,50 :: Int)
b <- randomRIO (0,50)
n <- randomRIO (0,2)
let op = [(+),(-),(*)] !! n
let sop = ["+","-","*"] !! n
printf "%d %s %d = " a sop b
l <- getLine
if read l == a `op` b
then printf "CORRECT.\n" >> loop (score + 1)
else printf "WRONG.\n" >> loop (max 0 (score-1))