示例#1
0
 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)
             ]
示例#2
0
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()
示例#3
0
 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)
示例#4
0
    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)
                    ]
示例#5
0
    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
示例#6
0
  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()
示例#7
0
    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))
示例#8
0
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():
示例#9
0
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:
示例#10
0
 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))
示例#11
0
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"
示例#12
0
文件: main.py 项目: Brackie/racecar
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)