计算 netlogo 中的累计链接数

count the accumulated number of links in netlogo

我设置了一个环境,每次滴答显示 3 条信息,海龟与它们建立链接,这意味着它们将信息整合到它们的知识中。

我想用每一个刻度来计算他们积累的知识。

但问题是,计数函数总是计算所有现有链接的数量,而不仅仅是新建链接的数量。

当然,当我让链接死掉时,我可以正确计算,但这不是我想要的。

我能做什么?

directed-link-breed [infolinks infolink]
breed [guys guy]
breed [infobits infobit]
globals [newinfos x]

guy-own [knowledge]


to setup
ca
create-guys 2[
setxy random-xcor random-ycor
set knowledge random 100
set label knowledge
reset-ticks
end

to go
create-infobits 3[
setxy random-xcor random-ycor
ask guys [
set newinfos myself
expose newinfos
]]

ask guys 
[update-knowledge]
tick

end

to expose [new]
if random-float 1 < 0.8 [
create-infolink-to new
]

set x count infolink-neighbors
end

to update-knowledge
set knowledge knowledge + x 
set label knowledge
end





最好的方法是使用一个 guys-own 计数器,它在每个滴答时设置为零,然后在每次滴答期间产生新的 link 时递增。我在下面的代码中添加了这样一个计数器 new-knowledge,并删除了 globals,因为它们在您的代码中没有发挥“全局”作用。

directed-link-breed [infolinks infolink]
breed [guys guy]
breed [infobits infobit]
guys-own [knowledge new-knowledge]

to setup
  ca
  create-guys 2 [
    setxy random-xcor random-ycor
    set knowledge random 100
    set label knowledge
  ]
  reset-ticks
end

to go
  ask guys [set new-knowledge 0]
  create-infobits 3 [
    setxy random-xcor random-ycor
    ask guys [expose myself]
  ] 
  ask guys [update-knowledge]
  tick
  
end

to expose [new]
  if random-float 1 < 0.8 [
    create-infolink-to new
    set new-knowledge new-knowledge + 1
  ]
end

to update-knowledge
set knowledge knowledge + new-knowledge 
set label knowledge
end