NetLogo:组合并形成一个新的海龟
我目前正在学习NetLogo,我需要帮助。在我的模型中,我有10只大小相同的海龟,它们随机移动。当2只或更多的海龟在同一块地上时,它们会结合在一起,形成一个新的海龟,大小是原来的两倍。以这种方式,主要规则是最多5只海龟可以相互结合。这种形成将持续下去,直到剩下2只海龟(每只包含5只海龟)为止 我创造了海龟,让它们随意移动,但我无法将它们组合在一起。你能告诉我怎么做吗?谢谢你的帮助。问候 编辑:我尝试了“半径内”命令,但未成功。海龟的5-5分布(正如您从代码中看到的,它们代表H2O分子)对于系统定义至关重要,模型中不允许任何其他分布 具体来说,当随机移动的2个H2O分子在同一块上相遇时,它们将结合形成一个新的分子(2H2O)。主要规则如前所述,最多5个分子可以结合,最终形成5H2O。因为,最初系统中有10H2O分子,最后会有25H2O分子 我试图实现的代码如下:NetLogo:组合并形成一个新的海龟,netlogo,Netlogo,我目前正在学习NetLogo,我需要帮助。在我的模型中,我有10只大小相同的海龟,它们随机移动。当2只或更多的海龟在同一块地上时,它们会结合在一起,形成一个新的海龟,大小是原来的两倍。以这种方式,主要规则是最多5只海龟可以相互结合。这种形成将持续下去,直到剩下2只海龟(每只包含5只海龟)为止 我创造了海龟,让它们随意移动,但我无法将它们组合在一起。你能告诉我怎么做吗?谢谢你的帮助。问候 编辑:我尝试了“半径内”命令,但未成功。海龟的5-5分布(正如您从代码中看到的,它们代表H2O分子)对于系统定
breed [h2o-molecules h2o]
to setup
clear-all
reset-ticks
create-h2o-molecules h2o-num [
set color 105
set sIze .5
set shape "circle"
setxy random-xcor random-ycor
set pen-mode "up"
]
end
to setup-patches
ask patches [set pcolor 0]
show count turtles
end
to set-label
ask patches [
ifelse count turtles-here > 0
[set plabel count turtles-here]
[set plabel ""]
]
end
to move-h2o-molecules
ask h2o-molecules [
let dice random 1000
let change (dice - 1)
forward 2
set HEADING (HEADING + change * 2)
]
end
to go
setup-patches
move-h2o-molecules
ask turtles [rt random 1
fd 0.3]
set-label
tick
end
谢谢你的时间和耐心。关于,在这里使用海龟
您不需要在这里为海龟询问补丁
(就像设置补丁标签一样)。如果被海龟调用,该函数也可以运行(如果补丁比海龟多,则效率更高)。但是,如果你不想包括呼叫海龟,请注意使用这里的其他海龟
联合收割机程序
如果你申报
您的品种声明后的海龟变量:
h2o-molecules-own [
turtles-inside
]
(在create-h2o-molecules
中设置变量值)
将您的组合限制max inside
作为全局变量(使用带5的滑块小部件作为默认值)
然后,联合收割机程序可以如下所示:
to combine ;; turtle procedure
; take one turtle from the same patch as a target
; which has turtles-inside low enough to combine with
let target one-of other h2o-molecules-here with
[turtles-inside <= max-inside - [turtles-inside] of myself]
if target != nobody
[
set turtles-inside turtles-inside +
[turtles-inside] of target ;; increase turtles-inside
ask target [ die ] ;; kill the target
set size sqrt turtles-inside ;; increase size
]
end
合并;;海龟手术
; 从同一块地上取一只海龟作为目标
; 里面的海龟足够低,可以和
让我们以另一个h2o分子为目标
[turtles inside模型简单且定义良好,但您能否告诉我们“组合”的问题在哪里程序?在同一个补丁上找到海龟,杀死它们或设置海龟变量?你能用你目前编写的一些代码编辑你的问题吗?顺便说一句,从模型描述来看,5-5组合不是唯一的解决方案。如果不允许组合超过5个,则可能以3-3-4或2-4-4结束。
if not any? h2o-molecules with [turtles-inside < max-inside] [ stop ]