Exemplo n.º 1
0
def run_game():
    """
    Основной цикл игры.
    """
    global score
    score = 0
    player = Snake()
    food = Food()

    # Цикл игры.
    while True:
        # Закрашиваем экран.
        screen.fill(game_settings.BACKGROUND_COLOR)

        # Проверяем нажатие клавиш.
        check_events(player)

        # Двигаем змейку.
        player.snake_moving()

        # Отрисовываем змейку на актуальных координатах.
        player.draw_snake(screen)

        # Отрисовываем еду.
        food.draw_food(screen)

        # Если есть столкновение головы с телом\краем игрового окна - конец.
        if collision.game_over(player, game_settings.SCREEN_WIDTH_AND_HEIGHT,
                               game_settings.CELL_SIZE):
            break

        # Если змейка поела - растёт и получает баллы.
        if collision.food_eaten(player, food):
            player.add_new_segment()
            food.create_new_food()
            score += 1

            # Не создаем еду поверх змейки.
            while collision.poor_cooking(player, food):
                food.create_new_food()

        # Обновляем экран.
        pygame.display.update()

    play_again()