コード例 #1
0
 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
コード例 #2
0
    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
コード例 #3
0
    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
コード例 #4
0
ファイル: main.py プロジェクト: Mocker/Twisted
    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()
コード例 #5
0
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
コード例 #6
0
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
コード例 #7
0
ファイル: gameStateController.py プロジェクト: Haya1/Master
 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)
コード例 #8
0
ファイル: game.py プロジェクト: abhijit148/ddr_py
	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)
コード例 #9
0
        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)
コード例 #10
0
ファイル: netcave.py プロジェクト: alangenfeld/netcave
# 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
コード例 #11
0
ファイル: main.py プロジェクト: AntWars/AntWars
        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)
コード例 #12
0
ファイル: main.py プロジェクト: galilei2000/AntWars-1
# -*- 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()
コード例 #13
0
 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 )