def main(): screen = pygame.display.set_mode(size) pygame.display.set_caption('Smart Rocket') obs = np.empty(3, dtype=object) obs[0] = Obstacle(obsPosition1[0], obsPosition1[1]) obs[1] = Obstacle(obsPosition2[0], obsPosition2[1]) obs[2] = Obstacle(obsPosition3[0], obsPosition3[1]) target = Target(targetPosition) pop = Population(screen, amountOfRockets, lifeSpan, mutationRate, target) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.display.quit() sys.exit() ## evolving code pop.run(obs, target) obs[0].draw(screen) obs[1].draw(screen) obs[2].draw(screen) target.draw(screen) ## pygame.display.update() screen.fill((0, 0, 0))
class Game(object): def __init__(self): pygame.init() size = (WIDTH, HEIGHT) if FULLSCREEN: self.displaySurf = pygame.display.set_mode( size, pygame.HWSURFACE | pygame.FULLSCREEN) else: self.displaySurf = pygame.display.set_mode(size, pygame.HWSURFACE) self.population = Population() self.clock = pygame.time.Clock() self.target = Target() self.target.set_center(TARGETPOS) self.text = Text() self.obstacles = [Obstacle()] # for i in range(0,MAXOBSTACLES): # print 'new obstacle',len(self.obstacles) # obs = Obstacle(self.obstacles) # self.obstacles.append(obs) def draw(self): self.displaySurf.fill((0, 0, 0)) self.target.draw(self.displaySurf) self.text.set_text("Lifetime: " + str(self.population.count), "Generation: " + str(self.population.gen)) self.text.draw(self.displaySurf) if self.population.gen > len(self.obstacles) and len( self.obstacles) < MAXOBSTACLES: self.obstacles.append(Obstacle(self.obstacles)) print('novo obstaculo') for i in self.obstacles: i.draw(self.displaySurf) self.population.checkCollide(self.obstacles) self.population.draw(self.displaySurf) def main_loop(self): while True: for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == K_f: pygame.display.toggle_fullscreen() if event.key == K_ESCAPE: sys.exit() pygame.quit() exit() if event.type == pygame.QUIT: sys.exit() self.draw() pygame.display.flip()