{-# LANGUAGE DeriveDataTypeable #-} module Main where import System.Environment import qualified Data.ByteString.Lazy as BS import System.IO import Text.JSON.Generic import Datatypes import Opt import JSONDeser import Strategy0 data JSONSer = JSONSer { problemId :: Int, seed :: Int, tag :: String, solution :: String } deriving (Show, Data, Typeable) main :: IO () main = do args <- getArgs opt <- parseArgs args file <- return ((optFile opt) !! 0) str <- BS.readFile file (id, gmseed) <- return (readInput str) commands <- return (map (\(seed,game) -> strat0 game) gmseed) seeds <- return ((map (\(seed, _) -> seed)) gmseed) putStrLn . encodeJSON $ (packAll id seeds commands) packAll :: Int -> [Int] -> [[Command]] -> [JSONSer] packAll id seeds commandLists = zipWith (\x y -> JSONSer id x "cazziammolla" y) seeds commandStrings where commandStrings = map cmdToString commandLists