|
|
- {-# LANGUAGE DeriveGeneric #-}
- module Main where
-
- import GHC.Generics
- import Data.Aeson
- import Data.Aeson.Types
-
- import Data.Maybe
- import System.Environment
- import qualified Data.ByteString.Lazy.Char8 as BS
- import System.IO
- import qualified Datatypes as DT
- import qualified VM
- import Opt
- import JSONDeser
- import SinglePasses
- import PowerPhrases
-
- main :: IO ()
- main = do args <- getArgs
- opt <- parseArgs args
- filename <- return ((optFile opt) !! 0)
- file <- BS.readFile filename
- phrase <- return (fromJust $ optPowerPhrase opt)
- seedn <- return $ optSeedNumber opt
- (id, seedgame) <- return $ readInput file
- (seed,game) <- return $ unzip seedgame
- outputs <- return $ passes $ propagateCommand (game !! seedn) phrase
- BS.putStrLn $ encode outputs
-
- propagateCommand :: DT.Game -> String -> [(DT.Game, VM.Notes)]
- propagateCommand game str = (game,VM.OK):(propagateCommand0 game str)
- where
- propagateCommand0 game0 [] = []
- propagateCommand0 game0 (c:cs) = res1:(propagateCommand0 game1 cs)
- where
- res1@(game1,note1) = VM.step game0 (fromJust $ charToCommand c)
-
-
|