如何'track'一只乌龟?
How to 'track' a turtle?
我想追踪一只按如下方式创建的海龟:
- 时间 0:海龟 1 创建了一只新海龟 - object - 使用 hatch-
- time > 0: object创建的被添加到新海龟列表中,海龟2;
- time > 0: 乌龟 2 想与新乌龟 3 共享这个 object。然后 object 添加到乌龟 3 的列表中 ...
要追踪的乌龟是 object。我考虑过访问 path/link 或更改创建的海龟的颜色(例如,询问 this-object [设置颜色红色]),但我隐藏了海龟,所以它没有意义。
你知道我如何在网络中追踪这只乌龟的路径吗? (你可以想象一辆发生事故的汽车,但是 driver 没有停下来,继续行驶并且它又发生了新的事故......
如果可能的话,我想追踪的不仅是事故,还有造成事故的汽车。
希望你能帮助我。
谢谢
您现在已经以略有不同的方式问了至少 10 次本质上相同的问题。很明显 none 的答案已经回答了你的问题,但也很明显你没有理解任何答案。虽然我通常会要求您 post 到目前为止您尝试过什么,但最好从头开始。
这是一个完整的模型,可以满足您的需求。我在关键点放置了 print
语句,以便您可以看到它做了您想要的。
breed [people person]
people-own
[ my-objects
]
breed [objects object]
objects-own
[ my-people
]
to setup
clear-all
create-people 5
[ setxy random-xcor random-ycor
set color red
set my-objects []
]
ask one-of people
[ hatch-objects 1
[ set color blue
set my-people (list myself)
let child self
ask myself [ set my-objects (list child) ]
]
]
reset-ticks
end
to go
ask one-of objects [move-object]
tick
end
to move-object
let target one-of people
while [target = first my-people] [set target one-of people]
let this-object self
ask target
[ type self type " Objects old: " print my-objects
set my-objects fput this-object my-objects
type self type " Objects new: " print my-objects
]
type self type " Owners old: " print my-people
set my-people fput target my-people
move-to target
type self type " Owners new: " print my-people
end
如果你想在你的代码上取得任何进展,你需要先完全理解这个模型。不要只是将相关位复制到您的代码中并尝试修改。相反,为这段代码创建一个新的 NetLogo 模型并理解每一行——它做了什么,它是如何工作的。一旦你理解了它,你就可以在你自己的模型中使用这些概念和方法。
我想追踪一只按如下方式创建的海龟:
- 时间 0:海龟 1 创建了一只新海龟 - object - 使用 hatch-
- time > 0: object创建的被添加到新海龟列表中,海龟2;
- time > 0: 乌龟 2 想与新乌龟 3 共享这个 object。然后 object 添加到乌龟 3 的列表中 ...
要追踪的乌龟是 object。我考虑过访问 path/link 或更改创建的海龟的颜色(例如,询问 this-object [设置颜色红色]),但我隐藏了海龟,所以它没有意义。 你知道我如何在网络中追踪这只乌龟的路径吗? (你可以想象一辆发生事故的汽车,但是 driver 没有停下来,继续行驶并且它又发生了新的事故...... 如果可能的话,我想追踪的不仅是事故,还有造成事故的汽车。
希望你能帮助我。 谢谢
您现在已经以略有不同的方式问了至少 10 次本质上相同的问题。很明显 none 的答案已经回答了你的问题,但也很明显你没有理解任何答案。虽然我通常会要求您 post 到目前为止您尝试过什么,但最好从头开始。
这是一个完整的模型,可以满足您的需求。我在关键点放置了 print
语句,以便您可以看到它做了您想要的。
breed [people person]
people-own
[ my-objects
]
breed [objects object]
objects-own
[ my-people
]
to setup
clear-all
create-people 5
[ setxy random-xcor random-ycor
set color red
set my-objects []
]
ask one-of people
[ hatch-objects 1
[ set color blue
set my-people (list myself)
let child self
ask myself [ set my-objects (list child) ]
]
]
reset-ticks
end
to go
ask one-of objects [move-object]
tick
end
to move-object
let target one-of people
while [target = first my-people] [set target one-of people]
let this-object self
ask target
[ type self type " Objects old: " print my-objects
set my-objects fput this-object my-objects
type self type " Objects new: " print my-objects
]
type self type " Owners old: " print my-people
set my-people fput target my-people
move-to target
type self type " Owners new: " print my-people
end
如果你想在你的代码上取得任何进展,你需要先完全理解这个模型。不要只是将相关位复制到您的代码中并尝试修改。相反,为这段代码创建一个新的 NetLogo 模型并理解每一行——它做了什么,它是如何工作的。一旦你理解了它,你就可以在你自己的模型中使用这些概念和方法。