Netlogo, В поисках родителя вылупившейся породы - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь выяснить, когда вы используете функцию штриховки, как сформировать связь между родителем и породой, которую он создает. Или уже есть ссылка, о которой я не знаю. Например, есть две породы, скажем, желтые пчелы и красные пчелы. Желтые пчелы путешествуют на определенное расстояние, и когда они достигают определенной точки (улья), они вылупляются без красных пчел. Я хочу перенести расстояние, пройденное желтыми пчелами, на красных пчел, которых оно создает (от родителя к его детям). Но сделать это невозможно, поскольку нет никакой связи между желтыми и красными пчелами, которые он создает.

т.е. (желтая пчела 22 выводит красную пчелу 15 и красную пчелу 72), а желтая пчела 77 выводит красную пчелу 26). Если желтая пчела прошла 17 метров, я хочу, чтобы красная пчела 22 и 15 унаследовала эту информацию. И красная пчела 26, чтобы унаследовать расстояние, пройденное желтой пчелой 77 (то есть 19м)

Примечание: в идеале я думаю, что лучше не использовать команду в радиусе, чтобы найти красных пчел вокруг желтых пчел. Потому что, если две желтые пчелы прибывают в улей одновременно и создают две группы красных пчел. Если они используют радиус, чтобы найти красных пчел вокруг них, они могут смешаться

breed [yellow-bees yellow-bee]
breed [red-bees red-bee]
yellow-bees-own [distance-traveled no-of-red-bees]
red-bees-own [transfered-distance]

to go
....
ask yellow-bees[
if current-node node-at-hive[
hatch red-bees no-of-red-bees [set color red]
]
set transfered-distance [distance-traveled] of ....(;this is where the 
agent-set (red-bees) should be added
]

1 Ответ

3 голосов
/ 11 июня 2019

В документации hatch говорится, что:

Каждая новая черепаха наследует все свои переменные, включая местоположение, от своего родителя.

Другими словами, hatch уже делает то, что вы хотите.Вам просто нужно убедиться, что переменная, которую вы хотите, чтобы потомок унаследовал (в данном случае distance-travelled), имеет то же имя, что и в породе родителя.

Вот пример:

breed [ yellow-bees yellow-bee ]
yellow-bees-own [ distance-travelled ]
breed [ red-bees red-bee ]
red-bees-own [ distance-travelled ]

to setup
  clear-all
  create-yellow-bees 1 [ set distance-travelled 10 ]
  create-yellow-bees 1 [ set distance-travelled 20 ]
  ask yellow-bees [ hatch-red-bees 1 ]
  ask turtles [ show distance-travelled ]
end

Результат которого будет примерно таким:

observer> setup
(red-bee 3): 20
(red-bee 2): 10
(yellow-bee 0): 10
(yellow-bee 1): 20

Как видите, две красные пчелы наследуют свои distance-travelled значения от своих родителей.

...