Revision 7441,
762 bytes
checked in by karkaite, 5 years ago
(diff) |
lol pitaa upata kosadfgdsa
|
Line | |
---|
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.