我想为一组中的特定海龟添加一个变量的值(比如说运输成本(。运输成本取决于特定斑块和指定给海龟的位置之间的距离。由于每只海龟的上述成本价值不同,我想把一组海龟的总成本加起来。为了澄清,我们假设总共有7只海龟,而一组只有4只。
每只乌龟的运输成本值被指定为tcast。
to calculate-ttcost
set ttcost 0
let cnt 0
ask turtles [
if in-group? [
set ttcost (tcost + tcost)
set cnt cnt + 1
]
]
end
在更正了一个拼写错误后,您所拥有的代码应该可以工作,假设tcost
被声明为具有该海龟运输成本的turtles-own
变量(或给出调用它的海龟运输成本(,并假设您感兴趣的组中的海龟将其海龟自己的变量in-group?
设置为true。打字错误在行
set ttcost (tcost + tcost)
应该是
set ttcost (ttcost + tcost)
但还有一种更直接的编码可以完成同样的任务。
let cnt count turtles with [in-group?]
let ttcost sum [tcost] of turtles with [in-group?]
with
将海龟集合限制为in-group
为真的海龟集合。of
为每只海龟创建了一个tcost
值的列表,然后可以对其进行汇总。