(in-microtheory (GameRulesMtFn TicTacToe)) (gameDomain TicTacToe) (isa TicTacToe MarkingGame) (isa TicTacToe TwoPersonGame) (isa (GameRoleFn x) GameRole) (isa (GameRoleFn o) GameRole) (entityLabel board board) (entityLabel (GameRoleFn x) x) (entityLabel (GameRoleFn o) o) (isa control GamePredicate) (isa opponent GamePredicate) (isa cell GamePredicate) (spatialLocationPred TicTacToe cell 3) (maxCoordX TicTacToe 3) (maxCoordY TicTacToe 3) (init (cell 3 3 Empty)) (init (cell 3 2 Empty)) (init (cell 3 1 Empty)) (init (cell 2 3 Empty)) (init (cell 2 2 Empty)) (init (cell 2 1 Empty)) (init (cell 1 3 Empty)) (init (cell 1 2 Empty)) (init (cell 1 1 Empty)) (init (control (GameRoleFn x))) (<== (next (cell ?m ?n ?mark)) (doesAction ?player (mark ?m ?n ?mark))) (<== (next (cell ?m ?n ?contents)) (currentlyTrue (cell ?m ?n ?contents)) (uninferredSentence (doesAction ?some-player (mark ?m ?n ?anything)))) (<== (legal ?w (mark ?x ?y ?mark)) (currentlyTrue (cell ?x ?y Empty)) (currentlyTrue (control ?w)) (allFactsAllowed (entityLabel ?w ?mark))) (<== (next (control ?player)) (currentlyTrue (control ?other-player)) (numAnswers 1 (gameDomain ?domain)) (allFactsAllowed (lookupOnly (localOnly (nonTransitiveInference (ist-Information (GameRulesMtFn ?domain) (isa ?player GameRole)))))) (different ?player ?other-player)) (<== (legal ?role (mark ?x ?y ?mark)) (currentlyTrue (cell ?x ?y Empty)) (entityLabel ?role ?mark) (currentlyTrue (control ?role))) (<== (goalState ?player 100) (lookupOnly (localOnly (allFactsAllowed (ist-Information (GameRulesMtFn TicTacToe) (isa ?player GameRole))))) (numAnswers 1 (entityLabel ?player ?mark)) (currentlyTrue (cell 3 ?y ?mark)) (currentlyTrue (cell 2 ?y ?mark)) (currentlyTrue (cell 1 ?y ?mark))) (<== (goalState ?player 100) (lookupOnly (localOnly (allFactsAllowed (ist-Information (GameRulesMtFn TicTacToe) (isa ?player GameRole))))) (numAnswers 1 (entityLabel ?player ?mark)) (currentlyTrue (cell ?x 3 ?mark)) (currentlyTrue (cell ?x 1 ?mark)) (currentlyTrue (cell ?x 2 ?mark))) (<== (goalState ?player 100) (lookupOnly (localOnly (allFactsAllowed (ist-Information (GameRulesMtFn TicTacToe) (isa ?player GameRole))))) (numAnswers 1 (entityLabel ?player ?mark)) (currentlyTrue (cell 2 2 ?mark)) (currentlyTrue (cell 3 3 ?mark)) (currentlyTrue (cell 1 1 ?mark))) (<== (goalState ?player 100) (lookupOnly (localOnly (allFactsAllowed (ist-Information (GameRulesMtFn TicTacToe) (isa ?player GameRole))))) (numAnswers 1 (entityLabel ?player ?mark)) (currentlyTrue (cell 2 2 ?mark)) (currentlyTrue (cell 3 1 ?mark)) (currentlyTrue (cell 1 3 ?mark))) (<== (terminalState) (uninferredSentence (currentlyTrue (cell ?m ?n Empty)))) (<== (terminalState) (goalState ?player 100)) (<== (terminalState) (currentlyTrue (control ?who)) (uninferredSentence (legal ?who ?action)))