| data Area = Field | Cliff | River | Path
|
| data Abilities = Flight | Swim | Run | Climb | Harvest
|
|
|
|
|
|
|
| areaOfDirection :: String -> String
|
| areaOfDirection x =
|
| case x of
|
| "field" -> "welcome to the rice fields, motha... you get what i mean, "
|
| "cliff" -> "too steep for me, have a cliff bar and a redbull, "
|
| "river" -> "can you hear the sound of the river? i love it here. lets fish some fish, "
|
| "path" -> "I see you're not taking the well-worn path. An individual of culture you're, "
|
| _ -> "CHOOSE, "
|
|
|
|
|
| abilitiesBySurroundings :: String -> Abilities
|
| abilitiesBySurroundings x =
|
| case x of
|
| "flight" -> Flight
|
| "swim" -> Swim
|
| "run" -> Run
|
| "climb" -> Climb
|
| "harvest" -> Harvest
|
|
|
| stateYourAbility :: Abilities -> String
|
| stateYourAbility x =
|
| case x of
|
| Flight -> "I knew that redbull will come in handy!"
|
| Swim -> ""
|
|
|
|
|
| leftRightForward :: String -> String
|
| leftRightForward movement =
|
| case movement of
|
| "left" -> "you're going left, "
|
| "right" -> "you're going right, "
|
| "forward" -> "you're going forward, "
|
| _ -> "type where you wanna go, "
|
|
|
|
|
|
|
|
|
| main :: IO ()
|
| main = do
|
| putStrLn "please enter your name"
|
| name <- getLine
|
| putStrLn "type where you wanna go. left, right, or forward"
|
| direction <- getLine
|
| putStrLn $ leftRightForward direction ++ name ++ "."
|
| putStrLn "now. where do you wanna go? field, cliff, river or path?"
|
| area <- getLine
|
| putStrLn $ areaOfDirection area ++ name ++ "!"
|
| putStrLn "now. Choose an ability"
|
| ability <- getLine
|
| putStrLn $ abilitiesBySurroundings ability
|