diff --git a/src/Main0.hs b/src/Main0.hs index d885019..0269195 100644 --- a/src/Main0.hs +++ b/src/Main0.hs @@ -1,10 +1,13 @@ -{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE DeriveGeneric #-} module Main where +import GHC.Generics +import Data.Aeson +import Data.Aeson.Types + import System.Environment import qualified Data.ByteString.Lazy as BS -import System.IO -import Text.JSON.Generic +import System.IO import Datatypes import Opt import JSONDeser @@ -15,7 +18,10 @@ data JSONSer = JSONSer { problemId :: Int, seed :: Int, tag :: String, solution :: String - } deriving (Show, Data, Typeable) + } deriving (Show, Generic) + +instance FromJSON JSONSer +instance ToJSON JSONSer main :: IO () main = do args <- getArgs @@ -26,7 +32,7 @@ main = do args <- getArgs commandspoints <- return (map (\(seed,game) -> strat0 game) gmseed) (commands,points) <- return $ unzip commandspoints seeds <- return ((map (\(seed, _) -> seed)) gmseed) - putStrLn . encodeJSON $ (packAll id seeds commands) + putStrLn $ show $ encode $ (packAll id seeds commands) writeFile ("scores") (scoredata id (fst $ unzip gmseed) points) @@ -38,7 +44,7 @@ packAll id seeds commandLists = zipWith (\x y -> JSONSer id x "lilik0" y) seeds scoredata :: Int -> [Int] -> [Int] -> String scoredata id seeds points = pretty where - pretty = foldl (\x (a,b,c) -> (show a) ++ " " ++ (show b) ++ " " ++ (show c) ++ "\n" ++ x) "" zipdata + pretty = foldl (\x (a,b,c) -> (show a) ++ " " ++ (show b) ++ (show c) ++ "\n" ++ x) "" zipdata zipdata = zip3 ids seeds points ids = replicate (length seeds) id diff --git a/src/ReadString.hs b/src/ReadString.hs index 70bf1fc..fa17cef 100644 --- a/src/ReadString.hs +++ b/src/ReadString.hs @@ -1,32 +1,34 @@ +{-# LANGUAGE DeriveGeneric #-} module Main where +import GHC.Generics +import Data.Aeson +import Data.Aeson.Types + import System.Environment import qualified Data.ByteString.Lazy as BS -import System.IO -import Text.JSON.Generic +import System.IO import Datatypes import Opt import JSONDeser -import Strategy0 - +import VM (Command, cmdToString) data JSONSer = JSONSer { problemId :: Int, seed :: Int, tag :: String, solution :: String - } deriving (Show, Data, Typeable) + } deriving (Show, Generic) + +instance FromJSON JSONSer +instance ToJSON JSONSer 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 "lilik0" y) seeds commandStrings where