L-seed-0.1: src/dbscorer.hs
import Lseed.Data
import Lseed.Data.Functions
import Lseed.DB
import Lseed.Grammar.Parse
import Lseed.Mainloop
import Control.Applicative
import Control.Monad
import Text.Printf
getGarden = spread <$> map compileDBCode
<$> getCodeToRun
where spread gs = zipWith (\(u,g) p -> Planted ((fromIntegral p + 0.5) / l) u g inititalPlant) gs [0..]
where l = fromIntegral (length gs)
compileDBCode dbc =
case parseGrammar "" (dbcCode dbc) of
Left err -> error (show err)
Right grammarFile -> (dbcUserID dbc, grammarFile)
scoringObs = nullObserver {
obFinished = \garden -> do
forM_ garden $ \planted -> do
printf "Plant from %d at %.4f: Total size %.4f\n"
(plantOwner planted)
(plantPosition planted)
(plantLength (phenotype planted))
addFinishedSeasonResults garden
}
main = do
garden <- getGarden
lseedMainLoop False scoringObs 10 garden