Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Think about organisms shape #70

Open
tmptrash opened this issue Nov 24, 2019 · 0 comments
Open

Think about organisms shape #70

tmptrash opened this issue Nov 24, 2019 · 0 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@tmptrash
Copy link
Owner

tmptrash commented Nov 24, 2019

Это сложный вопрос. В основном, мы не реализововали это из за сложностей взаимодействия между организмами с разными размерами тела. Но теоретически, это возможно.

  • Можно упростить эту систему введя одинаковые формы (например квадрат), но меняя размер. По сути, он будет показывать количество команд или количество энергии внутри организма и будет влиять на скорость его движения.
  • Можно подумать в сторону формирования примитивной многоклеточности. Каждая точка такого организма может, к примеру, содержать свой код (как аналог клетки) или он будет общий... В общем, это сложный и открытый вопрос. В случае многоклеточности непонятно, как точки будут слипаться и держатся одной формы? как они будут общаться между собой? (как вариант командой nwrite или say с расстоянием 1 точка). Как размножаться?

upd1: после чтения литературы выглядит так, что многоклеточность и форма - это следствие взаимодействия атомов, которые формируются в молекулы, которые потом тоже взаимодействуют и т.д. То, как взаимодействуют атомы (команды) в нашей системе не продумано. Сейчас они скрепляются и разъединяются с помощью команд anab, catab и с помощью плагина Decay. Нужно более глубокое исследование этого вопроса чтобы придумать как разные атомы будут взаимодействовать и зачем нам это нужно. Вторая проблема здесь - это то, как соединенные атомы (если они не будут представлять из себя точка, а каждый атом будет точкой) будут менять свое положение. Как команда step, будет "тянуть" за собой остальные прикрепленные к ней атомы?
Еще нужно подумать при каких условиях может появиться мембрана. Чтобы она защищала от внешних элементов (атомов) нужно чтобы те по каким-то причинам не могли вступить в взаимодействие с атомами мембраны.

upd2: оказывается есть даже язык, который похож по идее с тем, о чем я думал. Его имя Befunge. Вот идеи, которые актуальны в моей голове на текущее время:

  • тело организма будет строиться исходя из молекул из которых он состоит. организмы имеющие одинаковые мрлекулы всегда будут выглядеть одинаково
  • должны существовать правила по которым молекулы крепятся (выстраиваются в цепочку). Например, молекула M1 всегда располагается справа от предыдущей, а M2 - вверху. Таким образом весь код организма будет преобразован в какой-то точечный рисунок. Направление молекулы будет зависеть от крайности ее числа (все биты атомов). Пример (исходя из правил выше): [M1,M2,M1] будет выглядеть так:
M2 M1
M1

первая M1 - снизу, потом M2 - сверху и M1 - справа. В этом случае так же нужно хранить текущее направление, по которому следующая молекула будет добавляться к уже существующей цепочке. В примере выше, в начале, направление - "вправо", потом - "вверх", потом - "вправо".

  • команда step должна двигать все точки организма
  • подумать нужен ли нам поворот организма?
  • внутри атомы все равно будут линейными (как ДНК)
  • цвет будет выставляться всем атомам
  • позиция (Organism.offs) у каждого атома будет своя
  • вся цепочка не сможет двигаться, если хотя бы один атом во что-то "упирается" (ячейка занята). Это можно решить концентрацией атомов и молекул в определённых местах. Возможно, нужно будет сделать чтобы организмы были над атомами и молекулами. А еще ниже будет поверхность. Но для этого придётся хранить две карты, что очень накладно.
  • нужно хранить координату только одного атома - первого, относительно которого строятся все другие
    Screenshot_20200208-162228_Samsung Notes

Связано с #90

@tmptrash tmptrash added the enhancement New feature or request label Nov 24, 2019
@tmptrash tmptrash added this to the Visualization milestone Nov 24, 2019
@tmptrash tmptrash self-assigned this Nov 24, 2019
@tmptrash tmptrash changed the title Think about organisms size Think about organisms shape Jan 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant