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

问题描述 投票:0回答:1

每当从海龟中拾取元素时,我都会更新列表中元素的计数器。为此,我要设置我感兴趣的项目,并将其添加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 ; (obj 18) ; (buyer 3) ; 1
 ; 2 ; (obj 18) ; (buyer 5) ; 1

但是我希望以下内容:

 ; 1 ; (obj 18) ; (buyer 3) ; 1
 ; 2 ; (obj 18) ; (buyer 5) ; 2

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

非常感谢。

netlogo
1个回答
0
投票

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

您在set it_cnt 0中有hatch,但您说这是一个全局变量。因此,如果您有10个买家,则每个买家都会孵化0到4个obj,并且潜在的40个obj中的每一个将全局变量的单个副本设置为值0。为什么?您是说它是obj拥有的乌龟变量吗?

要更新计数器的位置,您突然将名称从it_cnt切换为new_id_cnt。这不会更新任何内容,这两个变量的值之间没有显示连接。

© www.soinside.com 2019 - 2024. All rights reserved.