更新从列表中选取的对象的计数器

Updating counter of picked objects from a list

我想更新列表中元素的计数器,每次从海龟中挑选它。 为此,我正在设置我感兴趣的项目并将其加 1(计数器)。 我创建了一个名为 it_cnt 的全局变量,并在我创建对象的 hatch 中将其设置为等于 0(以便知道最初拥有该项目的乌龟)。

这是我初始化计数器的地方:

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,因为它已被重置。

如果您能告诉我如何修复计数器以使其正常工作,我将不胜感激。

非常感谢。

这不是答案,但对于评论来说太长了。我无法理解这个问题。

你在 hatch 中有 set it_cnt 0 但你说它是一个全局变量。因此,如果您有 10 个买家,他们每个人孵化 0 到 4 个 obj,并且全局变量的单个副本被潜在的 40 个 obj 中的每一个设置为值 0。为什么?你的意思是它是一个归obj所有的海龟变量?

在您更新计数器的地方,您突然将名称从 it_cnt 更改为 new_id_cnt。这不会更新任何内容,这两个变量的值之间没有任何联系。