Skip to content

Идеи, задумки и недоделки (by Akon32) #20

@Akon32

Description

@Akon32

Сборка
(основная идея) Форкать ботов в матрицу по XZ (5х8 например) с шагом 3, и затем её проводить "змейкой" по XZ (столбцы по Y). Матрица ботов двигается как единое целое, подобно потокам в CUDA. Боты расположены с шагом 3 - потому что бот может заполнить небольшое пространство по XZ вокруг себя, а затем шагнуть по Y и затем заполнить своё прежнее расположение. Это, вроде как, эффективнее, чем шагать каждый раз плотным строем.
На каждом шаге ботами заполняются те пиксели, что должны быть заполнены. В High гармонике (могут быть какие-то эвристики для перехода в Low).
Но! краевые условия. Иногда матрица влезать не будет, иногда шаг 3 окажется слишком велик.
Перестраивать её, что ли? Слишком сложно для одного вечера.
не реализовано

Разборка
Расположить 8 ботов вокруг фигуры, и GVoid её. Не слишком эффективно, но, возможно, эффективно по сравнению с любыми другими алгоритмами.
не реализовано

Пересборка
Разобрать, а затем собрать. Вроде как, в моей реализации должны экономиться несколько шагов между этими операциями - перехода в (0,0,0) между ними нет.

Где это всё
GenTraces.hs

data Task = Assemble {tgt :: Matrix3d}
          | Disassemble {src :: Matrix3d}
          | Reassemble {src :: Matrix3d, tgt :: Matrix3d}

это описания задач - 3d фигуры, которые нужно сделать/разобрать.

matrixTraceGen :: Task -> Generator ()

функция, которая по описанию задачи делает генератор, её решающий.
полностью не реализована

Отдельные шаги (что требуется сделать) прописаны в коде.

Надеюсь, разберётесь.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions