def __init__(self, name, ttsProxy, memProxy, ledProxy, sensors): threading.Thread.__init__(self) self.name = name self.running = True self.bc = buttonC.buttonController(ttsProxy, memProxy, sensors) self.gc = gameC.gameController(self.team) self.ledProxy = ledProxy self.firstCallPenalty = True
def configure_game(self, strat_names): game = gameController(size=(10, 10), display=False) strategies = Loader().loadStrategies(strat_names) teams = {Team(AntClass=strategy.AntClass, BaseClass=strategy.BaseClass, team_id=i + 1, team_name=strategy.name) for i, strategy in enumerate(strategies)} game.Init(teams=teams) return game
def configure_game(self, strat_names): game = gameController(size=(10, 10), display=False) strategies = Loader().loadStrategies(strat_names) teams = { Team(AntClass=strategy.AntClass, BaseClass=strategy.BaseClass, team_id=i + 1, team_name=strategy.name) for i, strategy in enumerate(strategies) } game.Init(teams=teams) return game
def run(self): # do game loop GAME_STATE = "title" GAME_SELECTION = "none" while GAME_STATE != "quit": self.clock.tick(60) # get input for event in pygame.event.get(): if event.type == QUIT: GAME_STATE = "quit" elif event.type == KEYDOWN and event.key == K_ESCAPE and GAME_STATE != "title": GAME_STATE = "title" elif event.type == KEYDOWN and event.key == K_ESCAPE: GAME_STATE = "quit" elif event.type == KEYDOWN: tmpres = self.controller.parseKeyDown(event.key, GAME_STATE, GAME_SELECTION) GAME_SELECTION = tmpres[1] GAME_STATE = tmpres[0] elif event.type == KEYUP: GAME_STATE = self.controller.parseKeyUp(event.key, GAME_STATE) # change controller if needed if GAME_STATE == "game" and self.controller.function() != "game": self.controller = gameController.gameController(self.screen, GAME_SELECTION) if GAME_STATE == "title" and self.controller.function() != "title": self.controller = titleController.titleController(self.screen) # update the current controller self.controller.update() if GAME_STATE == "game" and self.controller.level_status == "exit": GAME_STATE = "title" # render the current controller self.background.fill((0, 0, 0)) self.screen.blit(self.background, (0, 0)) self.controller.render(self.screen) # flip display pygame.display.flip()
from agent import agent from agent import qAgent from agent import randomAgent from agent import simpleAgent from gameController import gameController from matplotlib import pyplot as plt dbe = dotsBoxesEnv(3) qt = qTable(dbe.allActions,dbe.numActions) agent1 = qAgent([255,0,0], qt.actionDict) #blue agent2 = qAgent([0,255,0], qt.actionDict) #green agent1.islearning = True agent2.islearning = True dbe.disp.updateDisplay = False game = gameController(dbe, agent1, agent2) for gameNo in range(Number_of_Training_Games): game.reset() game.play(qt, True) game.distributeTropy() # print("a1: ",agent1.score," a2: ", agent2.score, " draw: ", agent1.draws) # dbe.disp.waitForUser() if gameNo%100 == 0: print("iterations:" , gameNo ,"a1:", agent1.wins, " a2:", agent2.wins, " draw:" , agent1.draws) print("a1:", agent1.wins, " a2:", agent2.wins, " draw:" , agent1.draws) agent1 = randomAgent([255,0,0], qt.actionDict) #blue agent2 = qAgent([0,255,0], qt.actionDict) #green agent1.islearning = False agent2.islearning = False
base_lights = VRScript.Core.Entity("BASE_LIGHTS") base_lights_r = VRScript.Resources.Mesh("BASE_LIGHTS_r", "OSG_Light_0_3.osg") base_lights.attach(VRScript.Core.Renderable("BASE_LIGHTS_r", base_lights_r)) base_lights.renderable('').show() real_lights = [] for light in range(4): real_lights.append(VRScript.Core.Entity("Light_%d" % (light + 1))) light_r = VRScript.Resources.Mesh("LIGHT_r_%d" % (light + 1), "OSG_Light_%d.osg" % (light + 4)) real_lights[light].attach( VRScript.Core.Renderable("LIGHT_r_%d" % (light + 1), light_r)) real_lights[light].renderable('').show() gc = gameController() gc.setLevel(LEVEL) start = LEVEL.getFloor(0).start gc.setUserPosition(start) #move user to spawn #print(start[0]*CAVE,start[1]*CAVE) loc = VRScript.Math.Vector(-5, -5, 0, 0) loc2 = VRScript.Math.Vector(start[0] * CAVE, start[1] * CAVE, loc.z, loc.w) VRScript.Core.Entity('User0').physical('').applyImpulse( loc2 - loc, VRScript.Math.Vector(0, 0, 0)) #start[0] = 0#start[0]*CAVE #start[1] = 0#start[1]*CAVE
def __init__(self, name, ttsProxy, memProxy): threading.Thread.__init__(self) self.name = name self.running = True self.bc = buttonC.buttonController(ttsProxy, memProxy) self.gc = gameC.gameController(self.team)
def play(self): if self.checkGame()!=True: print "Try Again" exit() moves=self.moves songFile=self.songFile limit=self.limit score=self.score #Create a window imgWindow="Now Playing: PyDDR" cv2.namedWindow(imgWindow) # Read three images first (for difference calculation): cam = cv2.VideoCapture(0) t_minus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY) t = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY) img=cam.read()[1] #Initial flipping for mirror effect img = cv2.flip(img,1) t_plus = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) #Flip remaining t_minus = cv2.flip(t_minus,1) t = cv2.flip(t,1) #Calculation of width and height using numpy width = np.size(img, 1) height = np.size(img, 0) #Play music song = pyglet.media.load(songFile) song.play() #Creating objects scorer=gameScorer() controller=gameController() painter=gamePainter() start=datetime.now() while True: moves,dirs=controller.detectMoves(start,limit,moves,t_minus,t,t_plus) score=scorer.getScore(moves) img=painter.paint(img,moves,dirs,score,start,limit) cv2.imshow(imgWindow,img) # Read next image t_minus = t t = t_plus img=cam.read()[1] #Continuous flipping for mirror effect img = cv2.flip(img,1) t_plus = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) key = cv2.waitKey(10) if key == 27 or self.isOver(start)==True: cv2.destroyWindow(imgWindow) break print "Game Over. Your score was: " + str(score)
size = tuple(map(int, args.size.split())) delay = args.delay ready_log_name = (log_name if args.logs_flag else None) themeStr = args.theme teams = set() if args.strategies: strategies = Loader().loadStrategies(args.strategies) else: strategies = [] for i, strategy in enumerate(strategies): teams.update({ Team(AntClass=strategy.AntClass, BaseClass=strategy.BaseClass, team_id=i + 1, team_name=strategy.name) }) # todo: либо довести до ума логи (нет в ConfigDialog), либо выпилить их AntWarsGame = gameController( size=size, delay=delay, log_name=ready_log_name, themeStr=themeStr, display=not args.skip_visualization, ) AntWarsGame.Init(teams=teams) result = AntWarsGame.launch() if args.skip_visualization: print json.dumps(result)
# load lights base_lights = VRScript.Core.Entity("BASE_LIGHTS") base_lights_r = VRScript.Resources.Mesh("BASE_LIGHTS_r", "OSG_Light_0_3.osg") base_lights.attach(VRScript.Core.Renderable("BASE_LIGHTS_r", base_lights_r)) base_lights.renderable("").show() real_lights = [] for light in range(4): real_lights.append(VRScript.Core.Entity("Light_%d" % (light + 1))) light_r = VRScript.Resources.Mesh("LIGHT_r_%d" % (light + 1), "OSG_Light_%d.osg" % (light + 4)) real_lights[light].attach(VRScript.Core.Renderable("LIGHT_r_%d" % (light + 1), light_r)) real_lights[light].renderable("").show() gc = gameController() gc.setLevel(LEVEL) start = LEVEL.getFloor(0).start gc.setUserPosition(start) # move user to spawn # print(start[0]*CAVE,start[1]*CAVE) loc = VRScript.Math.Vector(-5, -5, 0, 0) loc2 = VRScript.Math.Vector(start[0] * CAVE, start[1] * CAVE, loc.z, loc.w) VRScript.Core.Entity("User0").physical("").applyImpulse(loc2 - loc, VRScript.Math.Vector(0, 0, 0)) # start[0] = 0#start[0]*CAVE # start[1] = 0#start[1]*CAVE
ConfigDialog(strategies, config, defaults) size = (config["width"], config["height"]) delay = config["delay"] ready_log_name = log_name if config["enable_logs"] else None # turn name to path themeStr = os.path.join(themes.__path__[0], config["theme"] + ".yml") else: size = tuple(map(int, args.size.split())) delay = args.delay ready_log_name = log_name if args.logs_flag else None themeStr = args.theme teams = set() if args.strategies: strategies = Loader().loadStrategies(args.strategies) else: strategies = [] for i, strategy in enumerate(strategies): teams.update( {Team(AntClass=strategy.AntClass, BaseClass=strategy.BaseClass, team_id=i + 1, team_name=strategy.name)} ) # todo: либо довести до ума логи (нет в ConfigDialog), либо выпилить их AntWarsGame = gameController( size=size, delay=delay, log_name=ready_log_name, themeStr=themeStr, display=not args.skip_visualization ) AntWarsGame.Init(teams=teams) result = AntWarsGame.launch() if args.skip_visualization: print json.dumps(result)
# -*- coding: utf-8 -*- import argparse from datetime import datetime from World import Team from BasicStrategy import BasicAnt, BasicBase from gameController import gameController if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-s', '--size', type=str, dest='size', default='50 21', help='Size of map, pair of integer as "x_size y_size". By default equals to "50 21"') parser.add_argument('-d', '--delay', type=float, dest='delay', default=500, help='Delay between turns in ms.') parser.add_argument('--logs', action='store_true', dest='logs_flag', help='Enable logs gathering.') parser.add_argument('-t', '--theme', type=str, dest='theme', default='constructor', help='Theme for graphical interface.') args = parser.parse_args() log_name = datetime.now().strftime("%y-%m-%d-%H-%M-%S") if args.logs_flag else None team1 = Team(AntClass=BasicAnt, BaseClass=BasicBase, team_id=1) team2 = Team(AntClass=BasicAnt, BaseClass=BasicBase, team_id=2) AntWarsGame = gameController(size=tuple(map(int, args.size.split())), delay=args.delay, log_name=log_name, themeStr=args.theme ) AntWarsGame.Init(teams={team1, team2}) AntWarsGame.launch()
def __init__(self, name, ttsProxy, memProxy ): threading.Thread.__init__(self) self.name = name self.running = True self.bc = buttonC.buttonController( ttsProxy, memProxy ) self.gc = gameC.gameController( self.team )