Netlogo:移动到特定补丁
Netlogo: move to a specific patch
我想问一个简单的问题。我有工人和补丁。工人想去一个特定的补丁,用一个 id 标记。我尝试了以下代码,但它不起作用。有人能帮我吗?谢谢
workers-own[selected-area]
patches-own [id]
ask workers [
move-to one-of patches with [id = selected-area]]
在您的示例中,您有两个重要的变量。 selected-area
,即 turtles-variable,id
,即 patch-variable。
每个代理(补丁或海龟)都可以访问自己的变量,但不能访问其他代理的变量。这里的问题是,您要求补丁将 id
与 selected-area
进行比较,但补丁没有名为 selected area 的变量,因此程序无法运行。
您程序的当前结构是:
- 观察者向所有特工发出命令(2)
- 每个代理给所有补丁一个命令(3)
- 每个补丁都会尝试将 id 与 selected-area
进行比较
对于这类情况,一个非常好的工具是 myself
。 Myself
指的是让你做你现在正在做的事情的agent,比你高1级的agent。在这种情况下,它将允许补丁检查海龟的变量。
ask workers [
move-to one-of patches with [ id = [ selected-area ] of myself ] ]
我想问一个简单的问题。我有工人和补丁。工人想去一个特定的补丁,用一个 id 标记。我尝试了以下代码,但它不起作用。有人能帮我吗?谢谢
workers-own[selected-area]
patches-own [id]
ask workers [
move-to one-of patches with [id = selected-area]]
在您的示例中,您有两个重要的变量。 selected-area
,即 turtles-variable,id
,即 patch-variable。
每个代理(补丁或海龟)都可以访问自己的变量,但不能访问其他代理的变量。这里的问题是,您要求补丁将 id
与 selected-area
进行比较,但补丁没有名为 selected area 的变量,因此程序无法运行。
您程序的当前结构是:
- 观察者向所有特工发出命令(2)
- 每个代理给所有补丁一个命令(3)
- 每个补丁都会尝试将 id 与 selected-area 进行比较
对于这类情况,一个非常好的工具是 myself
。 Myself
指的是让你做你现在正在做的事情的agent,比你高1级的agent。在这种情况下,它将允许补丁检查海龟的变量。
ask workers [
move-to one-of patches with [ id = [ selected-area ] of myself ] ]