不使用品种,而是处理两种类型的海龟
Not to use breed but deal with two types of turtles
我有两组代理:retailerA 和 retailerB。以前,我使用品种来创建它们,但由于我想创建一个随机网络,在其中询问所有海龟并随机选择一些进行连接,我决定最好将海龟保留在随机网络代码中(在图书馆)并做这个改变:
create-turtles 130 ; 100 of which are retailerA and 30 are retialerB.
现在我希望每组代理都有不同的显示。 RetailerA 将随机分布,而 retailerB 应显示在一个圆圈中。然而,下面的代码并没有达到我的要求。
to A
create-turtles 100
set retailerA? true
set shape "person"
setxy random-xcor random-ycor
end
to B
create-turtles 30 [
set retailerB? true
set shape "person"
set color gray
]
ask turtles with [retailerB?] [
layout-circle turtles with [retailerB?] (max-pxcor - 5)
]
end
这会将所有海龟都显示为圆形。
谢谢,
当您创建一个 turtles-own
变量时,默认值为 0。因此,如果您这样做
create-turtles 100 [
set retailerA? true
set shape "person"
setxy random-xcor random-ycor
]
您已将 retailerA?
正确设置为 true
,但由于您没有为此代理集设置 retailerB?
,因此 retailerB?
它们的值都将为 0 .因此,如果您尝试使用 with(例如 turtles with [retailerB?]...
)来评估 true
/false
表达式,但某些海龟 return 的值为 0 而不是 [=15] =] 或 false
,NetLogo 不知道该怎么办。要解决此问题,您可以在设置过程中显式设置这些变量,如下所示:
to spawn-a
create-turtles 100 [
set retailerA? true
set retailerB? false
set shape "person"
setxy random-xcor random-ycor
]
end
或者您可以明确地说 with [retailerB? = true]
。
此外,请查看 syntax for layout-circle
- 您不需要 ask
海龟使用该原语。那么,要解决您的问题,您需要类似的东西:
turtles-own [ retailerA? retailerB? ]
to setup
ca
spawn-a
spawn-b
reset-ticks
end
to spawn-a
create-turtles 100 [
set retailerA? true
set shape "person"
setxy random-xcor random-ycor
]
end
to spawn-b
create-turtles 30 [
set retailerB? true
set shape "person"
set color gray
]
layout-circle turtles with [retailerB? = true] (max-pxcor - 5)
end
我有两组代理:retailerA 和 retailerB。以前,我使用品种来创建它们,但由于我想创建一个随机网络,在其中询问所有海龟并随机选择一些进行连接,我决定最好将海龟保留在随机网络代码中(在图书馆)并做这个改变:
create-turtles 130 ; 100 of which are retailerA and 30 are retialerB.
现在我希望每组代理都有不同的显示。 RetailerA 将随机分布,而 retailerB 应显示在一个圆圈中。然而,下面的代码并没有达到我的要求。
to A
create-turtles 100
set retailerA? true
set shape "person"
setxy random-xcor random-ycor
end
to B
create-turtles 30 [
set retailerB? true
set shape "person"
set color gray
]
ask turtles with [retailerB?] [
layout-circle turtles with [retailerB?] (max-pxcor - 5)
]
end
这会将所有海龟都显示为圆形。
谢谢,
当您创建一个 turtles-own
变量时,默认值为 0。因此,如果您这样做
create-turtles 100 [
set retailerA? true
set shape "person"
setxy random-xcor random-ycor
]
您已将 retailerA?
正确设置为 true
,但由于您没有为此代理集设置 retailerB?
,因此 retailerB?
它们的值都将为 0 .因此,如果您尝试使用 with(例如 turtles with [retailerB?]...
)来评估 true
/false
表达式,但某些海龟 return 的值为 0 而不是 [=15] =] 或 false
,NetLogo 不知道该怎么办。要解决此问题,您可以在设置过程中显式设置这些变量,如下所示:
to spawn-a
create-turtles 100 [
set retailerA? true
set retailerB? false
set shape "person"
setxy random-xcor random-ycor
]
end
或者您可以明确地说 with [retailerB? = true]
。
此外,请查看 syntax for layout-circle
- 您不需要 ask
海龟使用该原语。那么,要解决您的问题,您需要类似的东西:
turtles-own [ retailerA? retailerB? ]
to setup
ca
spawn-a
spawn-b
reset-ticks
end
to spawn-a
create-turtles 100 [
set retailerA? true
set shape "person"
setxy random-xcor random-ycor
]
end
to spawn-b
create-turtles 30 [
set retailerB? true
set shape "person"
set color gray
]
layout-circle turtles with [retailerB? = true] (max-pxcor - 5)
end