Я пытаюсь улучшить мое понимание списков в NetLogo. Вскоре я добавляю и выбираю (и удаляю) элементы из списков. У каждой черепахи свой список. Каждый список должен содержать элементы в хронологическом порядке, от самых последних до самых старых. Как только черепаха выбирает предмет, у соседей этот предмет находится в верхней части их списков (то же самое для черепахи, которая выбирает предмет). Я попытался сделать следующее:
rnd:weighted-one-of-list mylist [ [ii] -> ii ] ; pick one of the most recent items already in the list
set mylist lput old_item mylist print "Old item" ; add items to the list
, используя расширение, как предложил JenB в предыдущем посте. Условие для использования выбора элемента из списка (старый элемент) состоит в том, что mylist не является пустым (if empty? mylist
).
Мой вопрос заключается в том, правильно ли выбирать элемент, используя расширение таким образом, как я.
ОБНОВЛЕНИЕ: список составляется следующим образом: я решаю создать новый элемент, item 4
с quality 2
(качество является параметром в [0,5]
). Я добавляю этот элемент в свой список (item 4, item3, item2, item1)
- от самого последнего до самого старого - с качеством item4 2, item3 1, item2 2, item1 5
, соответственно, и в списки соседей: neighbour1
, например, будет иметь список (item4, item 11, item 10,..)
с quality 2, 3, 1
соответственно. То, что я ожидаю, это выбрать элемент из списка на основе параметра качества. Это будет означать, что я выберу item1
из моего списка. Мои соседи выбрали бы item11
, поскольку его качество равно 3, то есть самое высокое в его группе.
Спасибо за помощь.