NetLogo:组合并形成一个新的海龟

NetLogo:组合并形成一个新的海龟,netlogo,Netlogo,我目前正在学习NetLogo,我需要帮助。在我的模型中,我有10只大小相同的海龟,它们随机移动。当2只或更多的海龟在同一块地上时,它们会结合在一起,形成一个新的海龟,大小是原来的两倍。以这种方式,主要规则是最多5只海龟可以相互结合。这种形成将持续下去,直到剩下2只海龟(每只包含5只海龟)为止 我创造了海龟,让它们随意移动,但我无法将它们组合在一起。你能告诉我怎么做吗?谢谢你的帮助。问候 编辑:我尝试了“半径内”命令,但未成功。海龟的5-5分布(正如您从代码中看到的,它们代表H2O分子)对于系统定

我目前正在学习NetLogo,我需要帮助。在我的模型中,我有10只大小相同的海龟,它们随机移动。当2只或更多的海龟在同一块地上时,它们会结合在一起,形成一个新的海龟,大小是原来的两倍。以这种方式,主要规则是最多5只海龟可以相互结合。这种形成将持续下去,直到剩下2只海龟(每只包含5只海龟)为止

我创造了海龟,让它们随意移动,但我无法将它们组合在一起。你能告诉我怎么做吗?谢谢你的帮助。问候

编辑:我尝试了“半径内”命令,但未成功。海龟的5-5分布(正如您从代码中看到的,它们代表H2O分子)对于系统定义至关重要,模型中不允许任何其他分布

具体来说,当随机移动的2个H2O分子在同一块上相遇时,它们将结合形成一个新的分子(2H2O)。主要规则如前所述,最多5个分子可以结合,最终形成5H2O。因为,最初系统中有10H2O分子,最后会有25H2O分子

我试图实现的代码如下:

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 ]