コード例 #1
0
ファイル: logicgame.py プロジェクト: BlackWalker01/DarkLogic
 def _createEvalAI(self):
     from AI.evalai import EvalAI
     print("Eval AI Mode")
     self._mode = Mode.EvalAI
     nbInstances = multiprocessing.cpu_count()
     # nbInstances = 1
     DarkLogic.init(nbInstances)
     self._player = EvalAI(nbInstances, LogicGame._AI_TIMEOUT)
コード例 #2
0
ファイル: logicgame.py プロジェクト: BlackWalker01/DarkLogic
 def _createNeuralAI(self):
     from AI.neuralai import NeuralAI
     print("Neural AI Mode")
     self._mode = Mode.NeuralAI
     # nbInstances = multiprocessing.cpu_count()
     nbInstances = 1
     DarkLogic.init(nbInstances)
     self._player = NeuralAI(nbInstances, LogicGame._AI_TIMEOUT)
コード例 #3
0
ファイル: logicgame.py プロジェクト: BlackWalker01/DarkLogic
 def _createBasicAI(self):
     from AI.ai import AI
     print("Basic AI Mode")
     self._mode = Mode.BasicAI
     nbInstances = multiprocessing.cpu_count()
     # nbInstances = 1
     DarkLogic.init(nbInstances)
     self._player = AI(nbInstances, LogicGame._AI_TIMEOUT)
コード例 #4
0
def humanIdentity():
    DarkLogic.init(0)
    print("Identity Demonstration")
    DarkLogic.makeTheorem("identity", "a<=>a")
    DarkLogic.printTheorem()
    print("__________________________________________________")

    apply("arr,[0]")
    apply("arr,[0]")
    apply("arr,[1]")
    apply("arr_True,[]")
    assert DarkLogic.isDemonstrated(), "identity theorem was not demonstrated"
コード例 #5
0
def humanDoubleNot():
    DarkLogic.init(0)
    print("DoubleNot Demonstration")
    DarkLogic.makeTheorem("doubleNot", "a<=>!!a")
    DarkLogic.printTheorem()
    print("__________________________________________________")

    apply("FE,[1]")
    apply("arr,[0]")
    apply("arr,[0]")
    apply("arr_True")
    assert DarkLogic.isDemonstrated(), "DoubleNot theorem was not demonstrated"
コード例 #6
0
def parser():
    DarkLogic.init(0)
    db = Database("Test/dbtest.csv")
    dbStates = db.getDatas()
    print("Total number of theorems in database: " + str(len(dbStates)))
    for dbState in dbStates.values():
        thCreated = DarkLogic.makeTheorem(dbState.theoremName(),
                                          dbState.theoremContent())
        assert thCreated, "Theorem name: " + dbState.theoremName() + ", " \
                             "content: " + dbState.theoremContent() + " has not been created"
        dlContent = DarkLogic.toStrTheorem()
        assert dlContent == dbState.theoremContent(), "Bad parsing! content in darklogic is '"\
            + dlContent + "', but original was " + dbState.theoremContent()
コード例 #7
0
 def demonstration(self, name, content, nbThreads):
     print("Test AI on " + name + " theorem with " + str(nbThreads) +
           " cores")
     DarkLogic.init(nbThreads)
     ai = AI(nbThreads, 60)
     assert DarkLogic.makeTheorem(
         name, content), "cannot make " + name + " theorem"
     DarkLogic.printTheorem()
     start = time.perf_counter()
     while not DarkLogic.isOver():
         action = ai.play()
         DarkLogic.getActions()
         print(ai.name() + " plays action with id " + str(action.id()))
         DarkLogic.apply(action.id())
         DarkLogic.printTheorem()
         print(
             "____________________________________________________________________________"
         )
     end = time.perf_counter()
     if DarkLogic.hasAlreadyPlayed():
         if DarkLogic.isDemonstrated():
             print(ai.name() + " won! " + ai.name() +
                   " finished the demonstration!")
         elif DarkLogic.isAlreadyPlayed():
             print(ai.name() + " lost! Repetition of theorem!")
         elif DarkLogic.isEvaluated():
             print(
                 ai.name() +
                 " lost! Cannot (\"back-\")demonstrate that a theorem is false with implications"
             )
         elif not DarkLogic.canBeDemonstrated():
             print(
                 ai.name() +
                 " lost! This theorem cannot be demonstrated! " +
                 "It can be true or false according to the values of its variables"
             )
     else:
         if DarkLogic.isDemonstrated():
             print("Game Over! the demonstration is already finished!")
             self._elapsed_seconds = end - start
         elif not DarkLogic.canBeDemonstrated():
             print(
                 "Game Over! This theorem cannot be demonstrated! " +
                 "It can be true or false according to the values of its variables"
             )
     self.pushEvent(Event.EventEnum.STOP)
コード例 #8
0
def humanExcludedMiddle():
    DarkLogic.init(0)
    print("ExcludedMiddle Demonstration")
    DarkLogic.makeTheorem("ExcludedMiddle", "p||!p")
    DarkLogic.printTheorem()
    print("__________________________________________________")

    apply("arr")
    apply("FI!")
    apply("||Ig_Annexe_0")
    apply("FE")
    apply("FI!_Annexe_7")
    apply("||Ig")
    apply("ax_Annexe_1")

    assert DarkLogic.isDemonstrated(
    ), "ExcludedMiddle theorem was not demonstrated"
コード例 #9
0
ファイル: logicgame.py プロジェクト: BlackWalker01/DarkLogic
 def _createHuman(self):
     from Human.human import Human
     print("Human Mode")
     self._mode = Mode.Human
     DarkLogic.init(0)
     self._player = Human()