如何获取刚创建的新海龟的 ID 号?
How to get the id number of a new turtle just created?
我在孵化新代理时有以下代码,
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
这是 运行 在海龟语境中(步行者品种)
一个步行者正在移动 'link'(另一个调用这个的过程),当计数器 <0 时,
此代码生成一个新事件(事件品种)并将其放置在步行者所在的同一位置(cur-link
是当前步行者 link)。
之后walker必须拿到新事件的id号
set events-x ([who] of events-here)
这里的问题是变量 events-x
得到一个空列表 []
。步行者下次经过同一事件时,它会获得事件的编号 ID。
肯定有问题,但我猜不出是什么。
如果有人可以看一下并给我一些帮助,我将不胜感激。
此致
你可以:
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
,一个可能使 reader.
神秘化的原语
您可以通过以下方式避免这两个问题:
let parent self
hatch-events 1 [
...
let child-who who
ask parent [ set events-x child-who ]
...
]
(但请注意,对于任何问题,完全使用 who 编号很少是解决任何问题的最佳和最惯用的方法。存储对海龟本身的引用几乎总是更好。)
我在孵化新代理时有以下代码,
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
这是 运行 在海龟语境中(步行者品种)
一个步行者正在移动 'link'(另一个调用这个的过程),当计数器 <0 时,
此代码生成一个新事件(事件品种)并将其放置在步行者所在的同一位置(cur-link
是当前步行者 link)。
之后walker必须拿到新事件的id号
set events-x ([who] of events-here)
这里的问题是变量 events-x
得到一个空列表 []
。步行者下次经过同一事件时,它会获得事件的编号 ID。
肯定有问题,但我猜不出是什么。 如果有人可以看一下并给我一些帮助,我将不胜感激。
此致
你可以:
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
,一个可能使 reader.
您可以通过以下方式避免这两个问题:
let parent self
hatch-events 1 [
...
let child-who who
ask parent [ set events-x child-who ]
...
]
(但请注意,对于任何问题,完全使用 who 编号很少是解决任何问题的最佳和最惯用的方法。存储对海龟本身的引用几乎总是更好。)