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()