/////////////////////////////////////////////////////////////////////// // STANFORD LOGIC GROUP // // General Game Playing Project // // // // Sample Player Implementation // // // // (c) 2007. See LICENSE and CONTRIBUTORS. // /////////////////////////////////////////////////////////////////////// /** * */ package stanfordlogic.jocular.game; import stanfordlogic.game.GameManager; import stanfordlogic.game.Gamer; import stanfordlogic.game.GamerFactory; import stanfordlogic.gdl.GdlAtom; import stanfordlogic.gdl.GdlList; import stanfordlogic.gdl.Parser; import stanfordlogic.knowledge.BasicKB; import stanfordlogic.knowledge.GameInformation; import stanfordlogic.knowledge.KnowledgeBase; import stanfordlogic.knowledge.MetaGdl; import stanfordlogic.prover.AbstractReasoner; import stanfordlogic.prover.BasicReasoner; import stanfordlogic.prover.TermObject; /** * */ public class LegalGamerFactory extends Object implements GamerFactory { public Gamer makeGamer(String gameId, GdlAtom role, GdlList description, int startClock, int playClock) { Parser parser = GameManager.getParser(); Gamer gamer = new LegalGamer(gameId, parser); GameInformation gameInfo = new MetaGdl(parser).examineGdl(description); KnowledgeBase staticKb = new BasicKB(); staticKb.loadWithFacts(gameInfo.getAllGrounds()); AbstractReasoner reasoner = new BasicReasoner(staticKb, gameInfo.getIndexedRules(), parser); TermObject myRole = (TermObject) TermObject.buildFromGdl(role); gamer.initializeGame(myRole, playClock, gameInfo, reasoner); return gamer; } }