Пример #1
0
    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)
Пример #2
0
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)
Пример #3
0
 def eval(self, env: Environment):
     env.add(self.key, self.value)
     return None
Пример #4
0
        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
Пример #5
0
    # сортируем особей по жизнеспособности
    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)