-- -- Copyright (c) 2005 Don Stewart - http://www.cse.unsw.edu.au/~dons -- Sean Seefried -- Stefan Wehr -- GPL version 2 or later (see http://www.gnu.org/copyleft/gpl.html) -- -- -- -- Robber Main -- module Main (main) where import Logging import FSM import CR import Syntax import KnowledgeBase import RobberFSM import System import CmdlineArgs import qualified RobberSPMoveFun import qualified RobberOneStepMoveFun import qualified RobberABMoveFun import RobberStrategy ( robberCRState ) type MoveFun = CR Move allMoveFuns :: [(String, MoveFun)] allMoveFuns = [ ("sp", RobberSPMoveFun.moveFun) , ("onestep", RobberOneStepMoveFun.moveFun) , ("ab", RobberABMoveFun.moveFun) ] defaultMoveFun :: MoveFun defaultMoveFun = RobberABMoveFun.moveFun main :: IO () main = do (flags,_) <- parseArgs let ll = Ignore -- Info -- getLogLevel flags -- Ignore initLogging ll UseStderr -- (Filename "robber.log") {- mfun <- case getStrategy flags of Nothing -> return defaultMoveFun Just s -> case lookup s allMoveFuns of Nothing -> do warn ("illegal move function: " ++ s) return defaultMoveFun Just f -> return f runCR robber (robberCRState mfun) -} runCR robber (robberCRState RobberABMoveFun.preFun RobberABMoveFun.moveFun) robber :: CR () robber = do initState <- mkStateInitial "20X6" runFSM initState