NetLogo:计算海龟在补丁上的后代(通过发芽功能?)

NetLogo: Calculate turtles' offsprings on patches (by sprout function?)

在我的 NetLogo 世界表面上,我想计算粉红色斑块上的海龟数量。接下来,我想包括复制过程。更具体地说,我想将这些斑块上的海龟数量乘以每只海龟的后代数量 (3),从而创造出新的海龟。 后代应该具有 parents 的质量.

步骤: 1. 在粉色补丁上创建 100 只海龟 (parents) 2. 确定每个粉红色斑块的海龟数量(我想将这个模型合并到更大的模型中)并将其乘以 3 -> 100 parents 有 300 个后代 3.让parents死去,只留后代 4. 每个粉色补丁的海龟数量:300

似乎使用 sprout 足以在每个粉红色斑块上生成海龟。但是我不明白如何包含这个后代创作?我知道我可以通过

计算每个补丁的海龟数量

show [count turtles-here] of patches with [pcolor = pink]

但是如何将此信息包含在我的新海龟(后代)创建中?以及如何 "copy" 他们的质量 parents? (红色?)

我尝试合并此处发布的答案但没有成功:Sprouting turtles in NetLogo based on patch value

非常感谢,这是我的代码:

to setup
  clear-all
  setup-patches
  setup-turtles
  reset-ticks
end

; create diverse landscape
to setup-patches
  ask n-of 5 patches [ set pcolor pink ]
end

; create turtles on pink patches

to setup-turtles 
  ask patches with [pcolor = pink] [sprout 100 [ set color red ]]   
  ; ask patches with [pcolor = pink] [count turtles-here]
  ; show [count turtles-here] of patches with [pcolor = pink]        ; calculate number of turtles on every pink patch
  let patch-list [count turtles-here] of patches with [pcolor = pink] 
  let i 0
  foreach patch-list [
    ask ? [
      sprout item i patch-list
      set plabel count turtles-here
    ]
    set i i + 1
  ]
  reset-ticks
end

简单的解决方案,结合

sprout count turtles-here

进入我的简单公式:

to setup
  clear-all
  setup-patches
  setup-turtles
  reset-ticks
end

to setup-patches
  ask n-of 5 patches [ set pcolor pink ]
end

to setup-turtles 
  ; create parents
  ask patches with [pcolor = pink] [sprout 100 [ set color red ]]  
  ; create offsprings (*3) and let parents die (- count turtles-here)
  ask patches with [pcolor = pink] 
    [sprout count turtles-here * 3 - count turtles-here [ set color red ]]
  ; show [count turtles-here] of patches with [pcolor = pink] 
  ask patches with [pcolor = pink] [set plabel count turtles-here]  
end

您要找的原语是hatch。如果您 ask 父代 hatch 后代,它会自动复制后代中父代的所有属性:

to setup
  clear-all
  ask n-of 5 patches [ set pcolor pink ]

  ; create 100 parent turtles on pink patches
  ask patches with [ pcolor = pink ] [ sprout 100 ]

  ; show that each pink patch has 100 turtles on it (the parents)
  show [ count turtles-here ] of patches with [ pcolor = pink ]

  ; ask each parent to hatch 3 offsprings and then die
  ask turtles [
    hatch 3
    die
  ]

  ; show that each pink patch now has 300 turtles on it (the offsprings)
  show [ count turtles-here ] of patches with [ pcolor = pink ]

end