X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=src%2FMain.hs;h=101714e0bae87028fab082b2e55f4cbd4ca45f01;hb=3836f842a8794a2d25cc5f8558d70becae8b7396;hp=d7ad6f3d843eba0c75bdd2da6bc042b7ccc19e7b;hpb=56796d54a5048d5f38ac06b1fdea48c045bb626e;p=synacor-challenge.git diff --git a/src/Main.hs b/src/Main.hs index d7ad6f3..101714e 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -1,19 +1,19 @@ import SynacorEngine -import Debug.Trace +-- import Debug.Trace -import Numeric +-- import Numeric import System.IO import Data.Char import Data.List import qualified Data.Map.Strict as M -import Data.Map.Strict ((!)) +-- import Data.Map.Strict ((!)) import Control.Lens -- hiding ((<|), (|>), (:>), (:<), indices) -import Control.Monad.State.Strict -import Control.Monad.Reader -import Control.Monad.Writer -import Control.Monad.RWS.Strict +import Control.Monad.State.Strict hiding (state) +-- import Control.Monad.Reader +-- import Control.Monad.Writer +-- import Control.Monad.RWS.Strict hiding (state) -- import Data.Bits import Data.Word @@ -69,6 +69,7 @@ main = -- print state1 stateF <- adventureHarness state1 + print stateF return () -- print $ stateF ^. ssInputs -- print $ stateF ^. ssOutputs @@ -98,17 +99,17 @@ adventureHarness state = do command <- prompt "> " state' <- handleCommand command state let traceAndOutput = head $ state' ^. ssOutputs - let (newOutput, tracing) = spliceOut traceAndOutput + let (newOutput, traces) = spliceOut traceAndOutput putStrLn newOutput when (state' ^. ssTracing) - (appendFile (state' ^. ssDumpFile) $ unlines tracing) + (appendFile (state' ^. ssDumpFile) $ unlines traces) if (state' ^. ssContinue) then (adventureHarness state') else return state' spliceOut :: String -> (String, [String]) -spliceOut s = doingOut s "" [] +spliceOut st = doingOut st "" [] where doingOut s out traces | null s = (reverse out, reverse traces) | ">> " `isPrefixOf` s = doingTrace (drop 3 s) out traces "" @@ -125,7 +126,7 @@ handleCommand ":save" state = let inputs = unlines $ tail $ reverse $ state ^. ssInputs writeFile filename inputs return $ state & ssUnsaved .~ True -handleCommand ":load" state = +handleCommand ":load" _state = do filename <- prompt "From? " machineInput <- readFile filename let inputs = lines machineInput