def test_update_environment(self): the_string = """ ::.String: END ::.Number: END ::.test.person: .name.$x(::.String) .age.$y(::.Number) END .a.test.sentence.$x(::.test.person) ::.test.location: .name.$x(::.String) .size.$y(::.String) END """ result = p.safeParse(p.MAIN, the_string) env = Environment(result[:]) #check type equations are added self.assertEqual(len(env.type_equations), 4) #Check type assignments are added self.assertEqual(len(env.type_assignments), 1) result2 = p.safeParse(p.MAIN, ".a.second.test.$y(::.test.location)")[0] env.add(result2) self.assertEqual(len(env.type_assignments), 2) result3 = p.safeParse(p.MAIN, "::.test.new:\n .name.$x(::.String)\nEND")[0] env.add(result3) self.assertEqual(len(env.type_equations), 5)
def main(): pygame.init() display = pygame.display.set_mode((width, height), pygame.RESIZABLE) env = Environment() red = Agent(0, 0, 5, 5, 10, color=(255, 0, 0)) blue = Agent(95, 95, 5, 5, 20, color=(0, 0, 255)) black = Agent(95, 0, 5, 5, 30, color=(0, 0, 0)) gray = Agent(0, 95, 5, 5, 40, color=(175, 175, 175)) yellow = Agent(45, 0, 10, 10, 10, color=(255, 255, 0)) purple = Agent(0, 45, 10, 10, 20, color=(255, 0, 255)) orange = Agent(90, 45, 10, 10, 30, color=(255, 165, 0)) pink = Agent(45, 0, 10, 10, 40, color=(255, 192, 203)) env.add([red, blue, gray, black, gray, yellow, purple, orange, pink]) FoodSpawner(lambda: 3, lambda: 3, lambda: 1, 0.5, 0.6, env).start() start_time = time.time() last_time = start_time while True: display.fill(background_color) event_queue = [] for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() running = False quit() elif event.type == pygame.VIDEORESIZE: display = pygame.display.set_mode((event.w, event.h), pygame.RESIZABLE) else: env.handle(event) cur_time = time.time() env.update(display, cur_time - start_time, cur_time - last_time, True) last_time = cur_time print("RED: {} \t BLUE: {} \t BLACK: {} \t GRAY: {} \t YELLOW: {} \t PURPLE: {} \t ORANGE: {} \t PINK: {}".format(int(red.energy), int(blue.energy), int(black.energy), int(gray.energy), int(yellow.energy), int(purple.energy), int(orange.energy), int(pink.energy))) pygame.display.update() if fps: time.sleep(1.0 / fps)
def eval(self, env: Environment): env.add(self.key, self.value) return None
clock.tick(60) if __name__ == '__main__': pygame.init() x_reso = 1280 y_reso = 720 screen = pygame.display.set_mode((x_reso,y_reso)) clock = pygame.time.Clock() player = Player(20,30,1) long_tile = Tiles(300,30,2) tall_tile = Tiles(30,400,2) tall_tile2 = Tiles(30,400,2) square_tile = Tiles(200,200,2) environment = Environment() environment.add(player, (0,100)) environment.add(long_tile, (900,400)) environment.add(tall_tile, (400, 100)) environment.add(tall_tile2, (100, 100)) environment.add(square_tile, (600,500)) player_control = environment.get_controller(player) start_game_loop() #whut happened to deh git test
# сортируем особей по жизнеспособности check_arr_sorted = sorted(check_arr, key=lambda k: k['result']) print(check_arr_sorted[0]["result"],check_arr_sorted[1]["result"],check_arr_sorted[2]["result"]) # удаляем лишние особи # получаем leng2 особи for elem in check_arr_sorted[leng2:]: try: env.individuals.remove(elem["individual"]) except ValueError: pass # если особей не хватает до leng2, до добавляем новых if len(env.individuals) < leng2: env.add(leng2 - len(env.individuals)) # находим первую жизнеспособную особь min_index = 0 # находим последнюю жизнеспособную особь max_index = -1 # получаем данные самой жизнеспособной особи и самой нежизнеспособной rs1 = check_arr_sorted[min_index]["result"] st1 = check_arr_sorted[min_index]["individual"].gets() rs2 = check_arr_sorted[max_index]["result"] st2 = check_arr_sorted[max_index]["individual"].gets() winner = check_arr_sorted[min_index]["individual"] print(check_arr_sorted[0]["result"],check_arr_sorted[1]["result"],check_arr_sorted[2]["result"]) print(i,"", len(env.individuals),"min",rs1,"max",rs2)