我试图建立一个朋友网络,就像在here中对JenB的最终修正之前的这个例子,因为它对我来说更容易理解,而且Bryan Head说这将是他的方式会用更少的代理人来做。我计划使用大约200个,可能还有300个代理商。
我的问题是......如果不成对,我怎么能这样做?我希望代理在y刻度期间与半径x中的每个代理商交换朋友,并使用相同的颜色(我仍在处理刻度条件)。在找到JenB示例之前,我尝试使用if
和一些条件但是它太重了。
我认为没有必要重新编写完整的代码。但我会把它写下来让你看我的版本。
to make-friends
ask agentes [
let new-friendships friends - count my-friendships
if (new-friendships > 0) [
set possible-friends other agentes in-radius sight-radius with [
(count my-friendships < friends) and (color = [color] of myself) ]
create-friendships-with n-of min (list new-friendships count possible-friends) possible-friends]
end
V2 CODE
我开始使用另一段代码,因为我不完全知道如何做得更好。这是最后一个版本。 random-in-range 0 12
条件位于设置中。
to make-friends
ask agentes [
let new-friends max-friends - count my-friendships
let possible-friends other agentes with [color = [color] of myself] in-radius sight-radius
if new-friends > 0 [
let chosen n-of min (list new-friends count other possible-friends) other possible-friends
create-friendships-with chosen ;in-radius sight-radius [ hide-link ]
set possible-friends other possible-friends
set friends friendship-neighbors
ask chosen [
if my-friendships = friends [ set possible-friends other possible-friends ] ]
]
]
end