| otherwise = (Just (skip_nl ((shuffle (fromJust ss) seed)!!0)), env)\r
\r
// word, guesses, mistakes left, stdio -> (win, new guesses, stdio)\r
-play :: String [Char] Int *File -> (Bool, [Char], *File)\r
-play w g n io\r
+play :: String [Char] Int *File *env -> (Bool, [Char], *File, *env) | FileSystem env\r
+play w g n io world\r
# io = io <<< stripUnknown w g <<< '\n'\r
-| stripUnknown w g == w = (True, g, io)\r
+| stripUnknown w g == w = (True, g, io, world)\r
+# (round,world) = readFile ("round-" +++ (toString n) +++ ".txt") world\r
+| round == Nothing = abort "Couldn't get gallow"\r
+# io = io <<< (fromJust round)\r
# io = io <<< "Guess (" <<< toString n <<< "): "\r
# (ok,g`,io) = freadc io\r
# (_,io) = freadline io // to read until the next \n\r
| not ok = abort "Couldn't get guessed letter"\r
-| isMemberString w g` = play w [g`:g] n io\r
-| n == 0 = (False, [g`:g], io)\r
-| otherwise = play w [g`:g] (n-1) io\r
+| isMemberString w g` = play w [g`:g] n io world\r
+| n == 0 = (False, [g`:g], io, world)\r
+| otherwise = play w [g`:g] (n-1) io world\r
\r
Start :: *World -> *World\r
Start world\r
| word == Nothing = abort "Couldn't get random word"\r
# word = fromJust word\r
# (io,world) = stdio world\r
-# (win,g,io) = play word [] 5 io\r
-# io = if win (io <<< "You win!\n") (io <<< "You lose!\n")\r
+# (win,g,io,world) = play word [] 5 io world\r
+# (lost,world) = readFile "round-lost.txt" world\r
+| lost == Nothing = abort "Couldn't get gallow"\r
+# io = if win (io <<< "You win!\n") (io <<< "You lose!\n" <<< fromJust lost)\r
# (ok,world) = fclose io world\r
| not ok = abort "Couldn't close stdio"\r
| otherwise = world\r