• Создать алгоритм генерации блоков тетриса для картинки?

    Adamos
    @Adamos
    Если все-таки имеется в виду разбиение поля на фигуры тетриса, то я с успехом применял такой алгоритм:
    1. Разбиваем поле на фигуры нужного размера (для тетриса и поля с четными сторонами - просто квадраты 2х2)
    2. Отрываем у одной из фигур одну клетку.
    3. Обходим всех ее соседей и выбираем, какие клетки она может у них позаимствовать, не разорвав тем самым на две части.
    4. Выбираем одну из таких клеток, дополняем эту фигуру и возвращаемся на п. 3 для той, которая после отрыва клетки стала ущербной, пока через какое-то время в соседях очередной ущербной фигуры не окажется та самая оторванная в п. 2 клетка.
    5. Тогда проверяем энтропию полученных фигур (достаточно ли они разнообразны), и если результат пока не устраивает - продолжаем отрывать или присоединяем оторванную и возвращаемся в п. 2.

    Алгоритм должен успешно работать на любом количестве клеток фигуры, изначальную разбивку стоит делать фигурами "покруглее", не полосками.
    Ответ написан
    Комментировать