Обновление счетчика выбранных объектов из списка - PullRequest
0 голосов
/ 22 февраля 2020

Я хотел бы обновить счетчик элемента в списке, каждый раз, когда он выбирается из черепах. Для этого я устанавливаю интересующий меня элемент и добавляю к нему 1 (счетчик). Я создал глобальную переменную с именем it_cnt и установил ее равной 0 в hatch, где я создаю объекты (чтобы узнать, какой черепахе изначально принадлежит этот элемент).

Здесь я инициализирую счетчик:

ask buyers [
hatch-obj random 5 [
            set it_cnt 0
        ]
]

Ниже приведен список, который я рассматриваю

let picked_obj (list item 0 obj_in_shop_bag item 1 obj_in_shop_bag item 2 obj_in_shop_bag item 3 obj_in_shop_bag)

Я обновляю счетчик следующим образом

let new_id_cnt item 3 picked_obj + 1 

, чтобы добавить 1 в случае, если picked_obj выбран покупателем. Тем не менее, когда я распечатываю список, чтобы увидеть, работает ли он

print (word " ; " item 0 obj_in_shop_bag " ; " item 1 obj_in_shop_bag " ; " item 2 obj_in_shop_bag " ; " item 3 new_id_cnt)

, если товар выбирается дважды от разных покупателей в разных тиках (тики item 0 в списке), единственное значение, которое я получаю 1, так как он был сброшен.

Буду очень признателен, если вы подскажете, как исправить счетчик, чтобы он работал правильно.

Большое спасибо.

1 Ответ

2 голосов
/ 23 февраля 2020

Это не ответ, но он слишком длинный для комментариев. Я не могу понять вопрос.

У вас есть set it_cnt 0 в hatch, но вы говорите, что это глобальная переменная. Поэтому, если у вас есть 10 покупателей, каждый из них выводит от 0 до 4 объектов, и этой единственной копии глобальной переменной присваивается значение 0 для каждого из потенциально 40 объектов js. Почему? Вы имеете в виду, что это переменная turtle, которой владеет obj?

Когда вы обновляете счетчик, вы неожиданно изменили имя с it_cnt на new_id_cnt. Это ничего не обновит, между значениями этих двух переменных не показано никакой связи.

...