Netlogo:Netlogo 可以只为一个特定的补丁设置无限数量的海龟吗?
Netlogo: Can Netlogo set up an infinite number of turtles for only one specific patch?
Netlogo 可以只为一个特定的补丁设置无限数量的海龟吗?补丁是道路设置。这个 link 是那个特定补丁的图像。 https://i.stack.imgur.com/DdBF0.jpg 下面是示例代码。然而这还没有完成。
turtles-at 0 0 of patch min-pxcor 0 ; this is not compleated
不太确定你问的是什么,但是一个补丁上的海龟数量没有限制(保存计算机内存施加的限制)。
此外,您可能正在寻找的代码类似于:
turtles-on patch 0 0
用于左侧补丁和
turtles-on patch 1 0
正确的补丁。
根据 Bryan 的回答,虽然您的 计算机 会有一个限制 - 模型中的海龟数量越多(在任何补丁上)你的模型将使用更多的内存。所以简短的回答是,据我所知,没有办法只对 Netlogo 说 "Spawn infinite turtles on this patch."
但是,如果通过无限,您真的只想要足够多的海龟,您不会 运行 从它们中进行特定的交互,您可能可以通过在该补丁上生成大量海龟或通过根据需要发芽更多(我的偏好)。
对于第一个选项,您可以在同一个补丁上放置一堆海龟:
to setup
ca
reset-ticks
ask patch 0 0 [
sprout 10000
]
ask patch 0 0 [
print count turtles-here
]
end
或者,如果您在补丁上的海龟用完了或以某种方式变得不可用,只需根据需要增加更多的发芽,以保持您的数量足够多以完成您正在尝试做的事情。这是一个示例,其中红海龟走到有 "infinite" (1000) 只蓝海龟的斑块,link 走到其中一只蓝海龟,然后把它们带走。然而,在每个 tick 结束时,"infinite" 补丁检查是否少于 1000 turtles-here
。如果有,它会生成足够多的海龟,使计数恢复到 1000。在新文件中尝试此代码:
to setup
ca
reset-ticks
infinite-sprout
source-sprout
end
to go
ask turtles with [ color = red ] [
fd 0.5
if any? ( turtles-on patch-ahead 1 ) with [ color = blue ] [
create-link-with one-of turtles-on patch-ahead 1 [
tie
]
set color green
]
]
ask turtles with [color = green] [
move-to patch-right-and-ahead 90 1
if pycor = max-pycor [
ask link-neighbors [
die
]
die
]
]
infinite-sprout
source-sprout
tick
end
to source-sprout
ask patch max-pxcor 0 [
if not any? turtles-here and random 3 = 1 [
sprout 1 [
set shape "arrow"
set color red
set heading 270
]
]
]
end
to infinite-sprout
ask patch 0 0 [
if count turtles-here < 1000 [
sprout ( 1000 - count turtles-here) [
set shape "circle"
set color blue
]
]
]
end
然后像这样设置你的界面:
如果你 运行 那个模型一段时间,你会看到在每个 tick 结束时,补丁 0 0 的 count turtles
恢复到 1000,有效地给你一个海龟的无限来源 "use up." 这是否满足您的需求?
Netlogo 可以只为一个特定的补丁设置无限数量的海龟吗?补丁是道路设置。这个 link 是那个特定补丁的图像。 https://i.stack.imgur.com/DdBF0.jpg 下面是示例代码。然而这还没有完成。
turtles-at 0 0 of patch min-pxcor 0 ; this is not compleated
不太确定你问的是什么,但是一个补丁上的海龟数量没有限制(保存计算机内存施加的限制)。
此外,您可能正在寻找的代码类似于:
turtles-on patch 0 0
用于左侧补丁和
turtles-on patch 1 0
正确的补丁。
根据 Bryan 的回答,虽然您的 计算机 会有一个限制 - 模型中的海龟数量越多(在任何补丁上)你的模型将使用更多的内存。所以简短的回答是,据我所知,没有办法只对 Netlogo 说 "Spawn infinite turtles on this patch."
但是,如果通过无限,您真的只想要足够多的海龟,您不会 运行 从它们中进行特定的交互,您可能可以通过在该补丁上生成大量海龟或通过根据需要发芽更多(我的偏好)。
对于第一个选项,您可以在同一个补丁上放置一堆海龟:
to setup
ca
reset-ticks
ask patch 0 0 [
sprout 10000
]
ask patch 0 0 [
print count turtles-here
]
end
或者,如果您在补丁上的海龟用完了或以某种方式变得不可用,只需根据需要增加更多的发芽,以保持您的数量足够多以完成您正在尝试做的事情。这是一个示例,其中红海龟走到有 "infinite" (1000) 只蓝海龟的斑块,link 走到其中一只蓝海龟,然后把它们带走。然而,在每个 tick 结束时,"infinite" 补丁检查是否少于 1000 turtles-here
。如果有,它会生成足够多的海龟,使计数恢复到 1000。在新文件中尝试此代码:
to setup
ca
reset-ticks
infinite-sprout
source-sprout
end
to go
ask turtles with [ color = red ] [
fd 0.5
if any? ( turtles-on patch-ahead 1 ) with [ color = blue ] [
create-link-with one-of turtles-on patch-ahead 1 [
tie
]
set color green
]
]
ask turtles with [color = green] [
move-to patch-right-and-ahead 90 1
if pycor = max-pycor [
ask link-neighbors [
die
]
die
]
]
infinite-sprout
source-sprout
tick
end
to source-sprout
ask patch max-pxcor 0 [
if not any? turtles-here and random 3 = 1 [
sprout 1 [
set shape "arrow"
set color red
set heading 270
]
]
]
end
to infinite-sprout
ask patch 0 0 [
if count turtles-here < 1000 [
sprout ( 1000 - count turtles-here) [
set shape "circle"
set color blue
]
]
]
end
然后像这样设置你的界面:
如果你 运行 那个模型一段时间,你会看到在每个 tick 结束时,补丁 0 0 的 count turtles
恢复到 1000,有效地给你一个海龟的无限来源 "use up." 这是否满足您的需求?