Netlogo 根据海龟的大小,每个海龟有更多的补丁

Netlogo 根据海龟的大小,每个海龟有更多的补丁,netlogo,patch,Netlogo,Patch,我是Netlogo编程的新手。我想让乌龟有云的形状和大的尺寸,所以如果另一只乌龟,即一个人,与云在同一块,就会失去能量。问题是我不能让海龟出现在多个补丁中,netlogo“可以看到”它只存在于一个补丁中。无论描绘海龟的图标大小如何,海龟都只位于一个点上(由变量xcor和ycor定义)。然而,你可以用距离来寻找其他海龟是否接近,正如JenB所说,海龟只是作为一个点存在,如果你想让它们成为海龟,你必须想出逻辑来让云看起来比它们更大 下面是一些代码,演示了如何使用大小,以及如何使云品种在它们经过时影响

我是Netlogo编程的新手。我想让乌龟有云的形状和大的尺寸,所以如果另一只乌龟,即一个人,与云在同一块,就会失去能量。问题是我不能让海龟出现在多个补丁中,netlogo“可以看到”它只存在于一个补丁中。

无论描绘海龟的图标大小如何,海龟都只位于一个点上(由变量
xcor
ycor
定义)。然而,你可以用距离来寻找其他海龟是否接近,正如JenB所说,海龟只是作为一个点存在,如果你想让它们成为海龟,你必须想出逻辑来让云看起来比它们更大

下面是一些代码,演示了如何使用
大小
,以及如何使
品种在它们经过时影响
品种颜色。它最好与
shape=“circle”
配合使用,因为云的半径将与树叶受影响的位置相匹配。您可以将此代码添加到基本的新NetLogo模型中,以查看其工作情况:

breed [ clouds cloud ]
breed [ leaves leaf ]

to setup
  clear-all
  
  ask patches [ 
    set pcolor blue + 2 
  ]
  
  create-clouds 10 [
    set xcor random-xcor
    set ycor random-ycor
    set size 1 + random 4
    set color white - 2 
    set shape "circle"
  ]
  
  create-leaves 35 [
    set xcor random-xcor
    set ycor max-pycor
    set shape "leaf"
    set color green
    set heading 180
  ]
end

to go
  ask clouds [
    ask leaves in-radius (size / 2) [
      set color (color - 1) 
    ]
  ]
  
  ask leaves [
    fd (1 + random 10) / 10
  ]
end
你也可以稍微颠倒一下逻辑,让树叶检查它们是否在云中。我觉得这个选项更令人困惑,但在您的情况下可能会更好:

to go-leaves   
  ask leaves [
    if any? clouds with [distance myself < (size / 2)] [
      set color (color - 1)      
    ]
    fd (1 + random 10) / 10
  ]
end
待办事项
请假[
如果有的话?云与[距离<(大小/2)][
设置颜色(颜色-1)
]
fd(1+10)/10
]
结束
最后,不要用海龟来表示海龟移动过的大片区域,你可以用补丁代替。它可以简化一些事情,但并非在所有情况下都有效