我有以下代码,我将孵化一个新代理
to t-of-slowdown [ es-poi ]
if we-look > 0 [
set we-look (we-look - 1)
if (we-look <= 0) [
if es-poi and (not any? events-here) [
hatch-events 1 [
set color green
set size 5
set is-poi? true
set new-poi true
let m [[ end2 ] of cur-link] of myself
move-to m ]
set events-x ([who] of events-here)
show events-x
set we-poi-var va-geometric (1 / 1500) + we-ticks poi
set sera-poi false
]
set impregna true
set color red
set seguir true
set we-look random-normal 120 20 ;time to watch an event
]
]
end
在乌龟环境中运行(步行者繁殖)
助行器正在通过“链接”(另一个调用此程序的程序)移动,当计数器<0时,
此代码生成一个新事件(事件品种)并将其放在walker所在的同一位置(cur-link
是当前的walker链接)。
之后,助行器必须获取新事件的ID号
set events-x ([who] of events-here)
这里的问题是变量events-x
获得一个空列表[]
。下一次步行者经过相同的事件时,它会得到事件的数字ID。
有些东西一定是错的,但我猜不出它是什么。 如果有人能看一眼并给我一些帮助,我将非常感激。
此致
答案 0 :(得分:2)
你可以:
let child-who -1
hatch-events 1 [
...
set child-who who
...
]
set events-x child-who
或者:
hatch-events 1 [
...
let child-who who
ask myself [ set events-x my-who ]
...
]
遗憾的是,这些都有点笨拙。第二个避免需要将child-who
初始化为无意义的值,但它需要使用myself
,这可能会使读者神秘化。
你可以避免这两个问题:
let parent self
hatch-events 1 [
...
let child-who who
ask parent [ set events-x child-who ]
...
]
(但请注意,对于任何问题,使用谁的数字,对于任何问题来说,很少是最好和最惯用的解决方案。存储对龟本身的引用几乎总是更好。)