예제 #1
0
파일: Master.py 프로젝트: Khuisde/goc
class Master:
    
    def __init__(self, args=None):
        
        self.id = str(random.random())
        self.dir = os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))
        self.arguments = args
             
    def init(self):
        pygame.init()
        
        try:
            
            self.screen = Screen()
            #self.screen.create_window((800,600)) #(1024,768))
            self.screen.create_window((1920,1080)) #(1024,768))
            
            self.game = Game()
            self.game.init()
            self.clock = pygame.time.Clock()
            
            self.continue_mainloop = True
            self.state = 0 # Main Menu / Game / etc
            
        except Exception as err:
             pygame.quit()
             raise err
        
    def quit(self):
        print("Quitting")
        self.continue_mainloop = False
        
    def main(self):
    
        try:
        
            # Main game Loop
            while self.continue_mainloop:
                
                self.update()
                
            pygame.quit()
            
        except Exception as err:
             pygame.quit()
             raise err

    def update(self):
        self.evaluate_events()
                
        # Do something
        if self.state == 0:
            self.game.update()
            
        if self.screen.active:
            self.screen.draw()
            
        self.clock.tick(60)
            
    def draw(self,screen):
        if self.game:
            self.game.draw(screen)
            
    def evaluate_events(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT: 
                self.continue_mainloop = False;
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_o: # Layer up
                    self.game.playerLayerUp()
                if event.key == pygame.K_p: # Layer down
                    self.game.playerLayerDown()
                if event.key == pygame.K_q: # QUIT
                    self.continue_mainloop = False
예제 #2
0
training = False

for i in range(len(game.players)):
    if game.players[i].isTraining:
        training = True
        game.players[i - 1].isAi = True
        game.players[i - 1].agentAI = game.players[i].agentAI

while game.isRunning:

    if game.isPlaying:
        game.move_player()
        game.move_ball()

    if training:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                for i in range(len(game.players)):
                    game.players[i].save('game/q_best/q_weights%d' % i,
                                         'game/q_best/q_biases%d' % i)

                print(game.trainingIterations)
                game.isRunning = False
    else:
        for event in pygame.event.get():
            game.check(event)

        game.draw()
        pygame.display.update()
        game.clock.tick(60)