示例#1
0
def main():
    from vgdl.core import VGDLParser
    from MCTSPlayer.Agent import Agent
    from RandomRuleGenerator.RandomRuleGenerator import RandomRuleGenerator
    from aiGame import aiGame
    from Timer import ElapsedCPUTimer

    # parse, run and play.
    parser = VGDLParser()
    game = parser.parseGame(rules)
    game.buildLevel(map)

    # Creating timer state and controller
    timer = ElapsedCPUTimer()
    timer.setMaxTime(10)

    for i in range(0, 10):
        gen = RandomRuleGenerator(map, game, timer)
        interactions, terminations = gen.generateRuleSet(timer)
        interactionSTR = 'InteractionSet\n'
        terminationSTR = 'TerminationSet\n'

        for interaction in interactions:
            interactionSTR += '        ' + interaction + '\n'
        for termination in terminations:
            terminationSTR += '        ' + termination + '\n'

        newRules = """
BasicGame
    LevelMapping
        - > wind
        = > ice
        G > goal
        < > tvleft
        ^ > tvup
        
    SpriteSet         
        structure > Immovable
            goal  > color=GREEN
            tv    > Conveyor color=RED
                tvup    > orientation=UP
                tvleft  > orientation=LEFT
            ice   > color=WHITE
            wind  > Conveyor orientation=RIGHT strength=1                                         
        avatar   > RotatingAvatar
        
    %s
        avatar wall  > stepBack
        
    %s
""" % (interactionSTR, terminationSTR)
        print(map)

        print(newRules)
        game = parser.parseGame(newRules)
        game.buildLevel(map)

        game.startGame(False, False)

    return 0
    def generateRules(self, game, level, modifiedFile):
        parser = VGDLParser()
        game = parser.parseGame(game)

        generator = RuleGenerator()