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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions