def spawn_bushes_line(self): for i in xrange(16): if i % 2 == 0: self.bushes += [Bush(x=0.85, y=(0.07 + i * 0.05))] else: self.red_bushes += [ Bush(x=0.85, y=(0.07 + i * 0.05), poisonous=True) ]
def eval_genomes(genomes, config): """ Setup world, and brains for critters. find and return most 'fit' critter. """ global SCORE global GENERATION, MAX_FITNESS, BEST_GENOME GENERATION += 1 global STATE STATE.day = 1 STATE.new_day = False # create plants for _ in range(BUSH_POP): x, y = pgh.random_position(STATE) STATE.plants.add(Bush(STATE.FOOD_TEXTURE, STATE.day, x, y)) # create critters STATE.critters = [] for _ in range(len(genomes)): x, y = pgh.random_position(STATE) c = pgh.spawn_critter(STATE, x, y, mode=STATE.mode) STATE.critters.append(c) STATE.sprites.add(c) for (genome_id, genome), critter in zip(genomes, STATE.critters): network = neat.nn.FeedForwardNetwork.create(genome, config) critter.setbrainandgenome(genome_id, genome, network) game(genome, config) print(f"Gen : {GENERATION} Max Fitness : {MAX_FITNESS}") for (gene_id, gene), critter in zip(genomes, STATE.critters): gene.fitness = critter.fitness STATE.sprites.empty() STATE.plants.empty()
def add_bushes(self): for x in self.bushS: bush = Bush(self.screen, "small", 96, 32) bush.rect.x = x * 32 bush.rect.y = self.settings.brick_y_offset - 32 self.bushes.append(bush) for x in self.bushM: bush = Bush(self.screen, "medium", 128, 32) bush.rect.x = x * 32 bush.rect.y = self.settings.brick_y_offset - 32 self.bushes.append(bush) for x in self.bushL: bush = Bush(self.screen, "large", 160, 32) bush.rect.x = x * 32 bush.rect.y = self.settings.brick_y_offset - 32 self.bushes.append(bush)
def spawn_bushes(self): if len(self.bushes) < self.max_bush_count: for i in xrange(self.max_bush_count - len(self.bushes)): if random.random() < 0.05: self.bushes += [ Bush(random.uniform(0.05, 0.95), random.uniform(0.05, 0.95)) ] if len(self.red_bushes) < self.max_red_bush_count: for i in xrange(self.max_red_bush_count - len(self.red_bushes)): if random.random() < 0.01: self.red_bushes += [ Bush(random.uniform(0.05, 0.95), random.uniform(0.05, 0.95), poisonous=True) ]
def random_setup(self): for x in range(self.game_size): for y in range(self.game_size): num = random() if num < 0.01: # 1% bunnies thing = Bunny(x, y) self.controller.put(thing) elif num < 0.013: # 0.3% wolves thing = Wolf(x, y) self.controller.put(thing) elif num < 0.315: # 30% bushes thing = Bush(x, y) self.controller.put(thing) else: # 60% empty space pass # and 100% reason to remember the name <---- joke comment, disregard
def update(self, state): state.FONT = pygame.font.SysFont("comicsansms", 24) state.FOOD_TEXTURE = pygame_helpers.load_image('food.png') state.CHAR_TEXTURES = [ (False, pygame_helpers.load_image('F_01.png')), (True, pygame_helpers.load_image('M_01.png')) ] state.GID_INDEX = 1 state.NEAT_CONFIG = neat.Config( neat.DefaultGenome, neat.DefaultReproduction, neat.DefaultSpeciesSet, neat.DefaultStagnation, "config", ) # load default genome pickle_in = open("default_genome.p", "rb") default_genome = pickle.load(pickle_in) state.screen = pygame.display.get_surface() state.clock = pygame.time.Clock() state.new_day = False state.day = 1 state.width, state.height = state.screen.get_size() # split work for this into processes later state.world = Island(state.width, state.height) state.sprites, state.plants = pygame.sprite.Group( ), pygame.sprite.Group() for _ in range(self.population): x, y = pygame_helpers.random_position(state) new_critter = pygame_helpers.spawn_critter(state, x, y) state.sprites.add(new_critter) # give each critter a brain based on the input one (genome, network) = reproduction.reproduce( state.NEAT_CONFIG, state.GID_INDEX, default_genome, default_genome ) new_critter.setbrainandgenome(state.GID_INDEX, genome, network) state.GID_INDEX += 1 for _ in range(self.bush_pop): x, y = pygame_helpers.random_position(state) state.plants.add(Bush(state.FOOD_TEXTURE, state.day, x, y)) pygame.time.set_timer(pygame.USEREVENT + 1, 5000) print('finished loading') return Play()
def generate_map(self, settings, screen, objects, background, mario): mario.x = 100 mario.y = settings.ground_level - mario.height mario.rect.x = mario.x mario.rect.y = mario.y self.generate_ground(settings, screen, objects) background.add( Hill(settings, screen, 0, settings.ground_level - settings.large_hill_height, 2)) background.add( Cloud(settings, screen, settings.brick_lenth * 9, settings.brick_lenth * 3, 1)) background.add( Bush(settings, screen, settings.brick_lenth * 12, settings.ground_level - settings.brick_lenth, 3)) background.add( Hill(settings, screen, settings.brick_lenth * 16, settings.ground_level - settings.brick_lenth - 2, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 16, settings.ground_level - settings.brick_lenth * 4, 1)) background.add( Cloud(settings, screen, settings.brick_lenth * 20, settings.ground_level - settings.brick_lenth * 15, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 22, settings.ground_level - settings.brick_lenth * 8, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 20, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 21, settings.ground_level - settings.brick_lenth * 4, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 22, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 23, settings.ground_level - settings.brick_lenth * 4, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 24, settings.ground_level - settings.brick_lenth * 4, 3)) background.add( Bush(settings, screen, settings.brick_lenth * 23.5, settings.ground_level - settings.brick_lenth, 1)) objects.add( Pipe(settings, screen, settings.brick_lenth * 29, settings.ground_level - settings.brick_lenth * 2, 1)) objects.add( Pipe(settings, screen, settings.brick_lenth * 39, settings.ground_level - settings.brick_lenth * 3, 2)) objects.add( Pipe(settings, screen, settings.brick_lenth * 47, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Pipe(settings, screen, settings.brick_lenth * 58, settings.ground_level - settings.brick_lenth * 4, 3)) background.add( Cloud(settings, screen, settings.brick_lenth * 28, settings.ground_level - settings.brick_lenth * 12, 3)) background.add( Cloud(settings, screen, settings.brick_lenth * 37, settings.ground_level - settings.brick_lenth * 15, 2)) background.add( Bush(settings, screen, settings.brick_lenth * 41.5, settings.ground_level - settings.brick_lenth, 3)) background.add( Hill(settings, screen, settings.brick_lenth * 49, settings.ground_level - settings.large_hill_height - 2, 2)) background.add( Cloud(settings, screen, settings.brick_lenth * 57, settings.ground_level - settings.brick_lenth * 15, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 65, settings.ground_level - settings.brick_lenth * 5, 1)) background.add( Bush(settings, screen, settings.brick_lenth * 60.5, settings.ground_level - settings.brick_lenth, 3)) background.add( Hill(settings, screen, settings.brick_lenth * 65, settings.ground_level - settings.small_hill_height, 1)) background.add( Cloud(settings, screen, settings.brick_lenth * 68, settings.ground_level - settings.brick_lenth * 15, 1)) background.add( Bush(settings, screen, settings.brick_lenth * 72.5, settings.ground_level - settings.brick_lenth, 1)) background.add( Cloud(settings, screen, settings.brick_lenth * 76, settings.ground_level - settings.brick_lenth * 13, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 78, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 79, settings.ground_level - settings.brick_lenth * 4, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 80, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 81, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 82, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 83, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 84, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 85, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 86, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 87, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 88, settings.ground_level - settings.brick_lenth * 8, 3)) background.add( Cloud(settings, screen, settings.brick_lenth * 85, settings.ground_level - settings.brick_lenth * 15, 2)) objects.add( Brick(settings, screen, settings.brick_lenth * 92, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 93, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 94, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 95, settings.ground_level - settings.brick_lenth * 8, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 95, settings.ground_level - settings.brick_lenth * 4, 3)) background.add( Bush(settings, screen, settings.brick_lenth * 90.5, settings.ground_level - settings.brick_lenth, 2)) background.add( Hill(settings, screen, settings.brick_lenth * 97, settings.ground_level - settings.large_hill_height - 2, 2)) objects.add( Brick(settings, screen, settings.brick_lenth * 101, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 102, settings.ground_level - settings.brick_lenth * 4, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 107, settings.ground_level - settings.brick_lenth * 4, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 110, settings.ground_level - settings.brick_lenth * 4, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 113, settings.ground_level - settings.brick_lenth * 4, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 110, settings.ground_level - settings.brick_lenth * 8, 1)) background.add( Cloud(settings, screen, settings.brick_lenth * 106, settings.ground_level - settings.brick_lenth * 11, 1)) background.add( Bush(settings, screen, settings.brick_lenth * 108.5, settings.ground_level - settings.brick_lenth, 3)) background.add( Hill(settings, screen, settings.brick_lenth * 113, settings.ground_level - settings.small_hill_height, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 119, settings.ground_level - settings.brick_lenth * 4, 3)) background.add( Cloud(settings, screen, settings.brick_lenth * 116, settings.ground_level - settings.brick_lenth * 12, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 122, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 123, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 124, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 129, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 130, settings.ground_level - settings.brick_lenth * 8, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 131, settings.ground_level - settings.brick_lenth * 8, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 132, settings.ground_level - settings.brick_lenth * 8, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 130, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 131, settings.ground_level - settings.brick_lenth * 4, 3)) background.add( Bush(settings, screen, settings.brick_lenth * 120.5, settings.ground_level - settings.brick_lenth, 1)) background.add( Cloud(settings, screen, settings.brick_lenth * 124, settings.ground_level - settings.brick_lenth * 11, 3)) background.add( Cloud(settings, screen, settings.brick_lenth * 133, settings.ground_level - settings.brick_lenth * 13, 2)) background.add( Bush(settings, screen, settings.brick_lenth * 138.5, settings.ground_level - settings.brick_lenth, 2)) background.add( Hill(settings, screen, settings.brick_lenth * 145, settings.ground_level - settings.large_hill_height, 2)) background.add( Cloud(settings, screen, settings.brick_lenth * 153, settings.ground_level - settings.brick_lenth * 11, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 135, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 136, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 137, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 138, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 136, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 137, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 138, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 137, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 138, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 138, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 141, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 141, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 141, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 141, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 142, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 142, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 142, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 143, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 143, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 144, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 149, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 150, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 150, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 151, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 151, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 151, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 152, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 152, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 152, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 152, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 153, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 153, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 153, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 153, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 156, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 156, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 156, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 156, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 157, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 157, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 157, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 158, settings.ground_level - settings.brick_lenth * 1, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 158, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 159, settings.ground_level - settings.brick_lenth * 1, 4)) background.add( Hill(settings, screen, settings.brick_lenth * 161, settings.ground_level - settings.small_hill_height, 1)) background.add( Cloud(settings, screen, settings.brick_lenth * 164, settings.ground_level - settings.brick_lenth * 13, 1)) background.add( Cloud(settings, screen, settings.brick_lenth * 172, settings.ground_level - settings.brick_lenth * 11, 3)) background.add( Cloud(settings, screen, settings.brick_lenth * 181, settings.ground_level - settings.brick_lenth * 13, 2)) background.add( Cloud(settings, screen, settings.brick_lenth * 201, settings.ground_level - settings.brick_lenth * 11, 1)) background.add( Bush(settings, screen, settings.brick_lenth * 167.5, settings.ground_level - settings.brick_lenth, 1)) background.add( Hill(settings, screen, settings.brick_lenth * 193, settings.ground_level - settings.large_hill_height, 2)) background.add( Hill(settings, screen, settings.brick_lenth * 209, settings.ground_level - settings.small_hill_height, 1)) objects.add( Pipe(settings, screen, settings.brick_lenth * 164, settings.ground_level - settings.brick_lenth * 2, 1)) objects.add( Pipe(settings, screen, settings.brick_lenth * 180, settings.ground_level - settings.brick_lenth * 2, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 169, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 170, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 171, settings.ground_level - settings.brick_lenth * 4, 1)) objects.add( Brick(settings, screen, settings.brick_lenth * 172, settings.ground_level - settings.brick_lenth * 4, 3)) objects.add( Brick(settings, screen, settings.brick_lenth * 182, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 183, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 183, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 184, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 184, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 184, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 185, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 185, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 185, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 185, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 186, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 186, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 186, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 186, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 186, settings.ground_level - settings.brick_lenth * 5, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 187, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 187, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 187, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 187, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 187, settings.ground_level - settings.brick_lenth * 5, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 187, settings.ground_level - settings.brick_lenth * 6, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 188, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 188, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 188, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 188, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 188, settings.ground_level - settings.brick_lenth * 5, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 188, settings.ground_level - settings.brick_lenth * 6, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 188, settings.ground_level - settings.brick_lenth * 7, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 189, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 189, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 189, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 189, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 189, settings.ground_level - settings.brick_lenth * 5, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 189, settings.ground_level - settings.brick_lenth * 6, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 189, settings.ground_level - settings.brick_lenth * 7, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 189, settings.ground_level - settings.brick_lenth * 8, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 190, settings.ground_level - settings.brick_lenth, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 190, settings.ground_level - settings.brick_lenth * 2, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 190, settings.ground_level - settings.brick_lenth * 3, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 190, settings.ground_level - settings.brick_lenth * 4, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 190, settings.ground_level - settings.brick_lenth * 5, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 190, settings.ground_level - settings.brick_lenth * 6, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 190, settings.ground_level - settings.brick_lenth * 7, 4)) objects.add( Brick(settings, screen, settings.brick_lenth * 190, settings.ground_level - settings.brick_lenth * 8, 4)) objects.add( Flag_Pole(settings, screen, settings.brick_lenth * 199, settings.ground_level - settings.flag_pole_height, 1)) objects.add( Castle(settings, screen, settings.brick_lenth * 203, settings.ground_level - settings.small_castle_height, 1))
screen = t.Screen() t.ht() t.speed("fastest") objects = [] o_index = 0 is_drawing = False draw_q = [] objects.append(Flower(0, 0, "pink", "orange", 20, 6, 50)) objects.append(Flower(0, 0, "lightblue", "yellow", 15, 8, 30)) objects.append(Orchid(0, 0, "purple", "pink", "yellow", 17.5)) objects.append(Orchid(0, 0, "orange", "magenta", "white", 25)) objects.append(Tree(0, 0, "brown", "green", 75, 150, 4, 75)) objects.append(Bush(0, 0, "green", "red", 50, 15, 5)) def next_object(): global o_index o_index = o_index + 1 if o_index < len(objects) - 1 else 0 def last_object(): global o_index o_index = o_index - 1 if o_index > 0 else len(objects) - 1 def draw_object(x, y): draw_q.append({"obj": objects[o_index], "x": x, "y": y}) if not is_drawing and len(draw_q) == 1: draw_next() def draw_next():
pygame.init() clock = pygame.time.Clock() constants.update() screen = pygame.display.set_mode( (constants.BLOCK_WIDTH * constants.BLOCK_SIZE, constants.BLOCK_HEIGHT * constants.BLOCK_SIZE), pygame.FULLSCREEN) active_sprite_list_1 = pygame.sprite.Group() active_sprite_list_1.add(Question(True, False)) active_sprite_list_1.add(Question(False, False)) active_sprite_list_1.add(Question(True, True)) active_sprite_list_1.add(Question(False, True)) active_sprite_list_1.add(Bush(False)) active_sprite_list_1.add(Bush(True)) active_sprite_list_1.add(Cloud(False, 0)) active_sprite_list_1.add(Cloud(True, 0)) active_sprite_list_1.add(Cloud(False, 1)) active_sprite_list_1.add(Cloud(True, 1)) active_sprite_list_1.add(Ground()) active_sprite_list_1.add(DateSec()) active_sprite_list_2 = pygame.sprite.Group() active_sprite_list_2.add(Mario()) active_sprite_list_2.add(BrickTime(False)) active_sprite_list_2.add(BrickTime(True)) active_sprite_list_2.add(Coin()) font = pygame.font.Font(None, 36) while True:
def spawn_bushes_grid(self): for i in xrange(1, 5): for j in xrange(1, 5): self.add_bush(Bush(i * 0.2, j * 0.2))
def play(config): """ Run training simulation. Returns when all critters have died. Format of critter inputs: * 5 points of world data, (distance, red, green, blue) * current angle critter is facing * hunger level * if the critter has reproduced """ global STATE, MAX_FITNESS, BEST_GENOME global SCREENHEIGHT, SCREENWIDTH # tmp # x, y = int(STATE.width / 2.0), int(STATE.height / 2.0) # STATE.borg = pgh.spawn_critter(STATE, x, y) # collective = pygame.sprite.Group() # collective.add(STATE.borg) # optionally reset group upon new game critters_still_living = True while critters_still_living and not STATE.paused: STATE.clock.tick(200) STATE.screen.blit(STATE.world.img, STATE.world.pos) handle_events() # tmp # STATE.borg.rotate(-0.5) critters_still_living = False for critter in STATE.critters: if (not critter.dead): # use continue here instead of not.. haha # observe world critter_center = critter.getcenterlocation() # trace rays of view into the world with different colors for: # * other characters # * food # * different types of terrain point_colors = observe_world(critter) curr_height = STATE.world.topology[int( critter_center[0])][int(critter_center[1] + 2)] # TODO for every rgb value need to also add a distance value # if this solution works i could also look into 3 vs 5 input points genome_input = (point_colors[0][0], point_colors[0][1], point_colors[0][2], point_colors[1][0], point_colors[1][1], point_colors[1][2], point_colors[2][0], point_colors[2][1], point_colors[2][2], point_colors[3][0], point_colors[3][1], point_colors[3][2], point_colors[4][0], point_colors[4][1], point_colors[4][2], critter.looking_angle / 360, critter.hunger, critter.reproduced) # record fitness critter.eval_fitness(STATE.day) if (critter.fitness > MAX_FITNESS): MAX_FITNESS = critter.fitness BEST_GENOME = critter.brain if (not critter.try_kill(curr_height, STATE.day)): critter.update(genome_input, STATE.new_day) # updated_center = critter.getcenterlocation() # try removing this # if( # STATE.mode != WorldType.SURVIVAL and # STATE.world.topology[int(updated_center[0] # )][int(updated_center[1] + 2)] < 0.05 # ): # x, y = back_to_land(updated_center) # critter.teleport(x, y) critters_still_living = True else: STATE.critters.remove(critter) STATE.sprites.remove(critter) # update world STATE.plants.update(STATE.day) food_deficit = BUSH_POP - len(STATE.plants) for _ in range(food_deficit): x, y = pgh.random_position(STATE) STATE.plants.add(Bush(STATE.FOOD_TEXTURE, STATE.day, x, y)) handle_collisions() STATE.plants.draw(STATE.screen) STATE.sprites.draw(STATE.screen) if (STATE.GUIMANAGER.get_widget("show_directions").enabled): draw_sprite_directions(STATE.sprites) # tmp # collective.draw(STATE.screen) # draw_raycast_directions(collective) STATE.new_day = False render_ui() pygame.display.flip() if not critters_still_living: return "extinct" else: return "pause"
def game_loop(): gameEnded = False pygame.event.clear() a = 0 t0 = time() while not gameEnded: road.draw() for event in pygame.event.get(): if event.type == pygame.QUIT: gameEnded = True elif event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: gameEnded = True elif event.key == pygame.K_UP or event.key == pygame.K_w: a = ACCELARATION elif (event.key == pygame.K_LEFT or event.key == pygame.K_a or event.key == pygame.K_RIGHT or event.key == pygame.K_d): a = 0 elif event.type == pygame.KEYUP: if (event.key == pygame.K_UP or event.key == pygame.K_DOWN or event.key == pygame.K_w or event.key == pygame.K_s or event.key == pygame.K_LEFT or event.key == pygame.K_a or event.key == pygame.K_RIGHT or event.key == pygame.K_d): a = 0 elif event.type == E_ADDOBSTACLE: obstacle = Obstacle() bush = Bush() allSprites.add(bush) bushes.add(bush) if not car.rect.colliderect(obstacle.rect): allSprites.add(obstacle) obstacles.add(obstacle) t1 = time() dt = (t1 - t0) t0 = t1 pressed_keys = pygame.key.get_pressed() car.update(pressed_keys, ACCELARATION, dt) for obstacle in obstacles: if obstacle.rect.colliderect(car.rect): gameEnded = True crash() break else: obstacle.move(ACCELARATION, dt) for bush in bushes: bush.move(ACCELARATION, dt) road.move(ACCELARATION, dt) allSprites.draw(road.gameDisplay) pygame.display.update() clock.tick(30)