Revision 7441,
762 bytes
checked in by karkaite, 5 years ago
(diff) |
lol pitaa upata kosadfgdsa
|
Rev | Line | |
---|
[7441] | 1 | module Adventure where |
---|
| 2 | |
---|
| 3 | import qualified Data.Map.Lazy as M |
---|
| 4 | |
---|
| 5 | data Opts = GoTo Room | Text String |
---|
| 6 | data Room = Room String |
---|
| 7 | (M.Map String Opts) |
---|
| 8 | |
---|
| 9 | room1 :: Room |
---|
| 10 | room1 = Room "hi" M.fromList |
---|
| 11 | [("expand" |
---|
| 12 | ,Text "umm nothing happened") |
---|
| 13 | ,"mlg" |
---|
| 14 | ,Text "OOOO" |
---|
| 15 | ) |
---|
| 16 | ] |
---|
| 17 | |
---|
| 18 | prompt :: String -> IO String |
---|
| 19 | prompt ps1 = do |
---|
| 20 | putStr ps1 |
---|
| 21 | hFlush stdout |
---|
| 22 | return getLine |
---|
| 23 | |
---|
| 24 | |
---|
| 25 | -- getLine :: IO String |
---|
| 26 | |
---|
| 27 | adventure :: Room -> IO () |
---|
| 28 | adventure rm@(Room str opts) = do |
---|
| 29 | putStrLn str |
---|
| 30 | x <- prompt "> " |
---|
| 31 | let eXPR = M.lookup x opts |
---|
| 32 | in case eXPRs of Just (Text xt) -> (print xt >> adventure rm) |
---|
| 33 | Just (GoTo rm2) -> adventure rm2 |
---|
| 34 | Nothing -> adventure rm |
---|
Note: See
TracBrowser
for help on using the repository browser.