Netlogo 靠近海龟们

Netlogo 靠近海龟们,netlogo,Netlogo,我使用的是netlogo 6.0.4,我想让海龟离我更近 我使用此代码: create-players 1[ set color red set size 5 set the-player self set team "red" ] create-balls 1 [ set color orange set size 2.5

我使用的是netlogo 6.0.4,我想让海龟离我更近

我使用此代码:

      create-players 1[
        set color red
        set size 5  
        set the-player self     
        set team "red"   
      ]
        create-balls 1 [
        set color orange
        set size 2.5
        set the-ball self   
        ] 
       to-report get-players-close-to-ball   
       report players with [distance the-ball <= 1] 
       end
。 因此,我尝试使用:

to-report get-players-closer-to-the-ball
  report the-player with [distance the-ball <= 1]
end
报告让球员靠近球

向玩家报告[球的距离您的第一个代码在一个过程中要报告
,甚至在试图偷球之前都会产生错误。您还有一个概念上的问题-可能有任意数量的球员靠近球。消息告诉您当时没有球员靠近球


NetLogo正在返回一个代理集,其中包含所有靠近球的球员。代理集不能像“if self=agentset”那样进行测试。您需要的是
if member?self让球员靠近球,这将检查self是否是代理集的成员。更好的是,即使代理集为空,它也能工作,因此您不必执行任何操作首先测试
(如果有的话)

您的第一个代码必须在一个过程中报告
,甚至在试图偷球之前都会生成一个错误。您还有一个概念上的问题-可能有任意数量的球员靠近球。消息告诉您当时没有球员靠近球


NetLogo正在返回一个代理集,其中包含所有靠近球的球员。代理集不能像“if self=agentset”那样进行测试。您需要的是
if member?self让球员靠近球,这将检查self是否是代理集的成员。更好的是,即使代理集为空,它也能工作,因此您不必执行任何操作首先测试
如果有?

很抱歉,我发布了一个非常糟糕的示例,删除了部分重要代码。好的,我理解你的答案,但我还有另一个问题:如何获取代理集列表中的元素?很抱歉,我对netlogo非常陌生。谢谢,为什么我要打印(会员?让球员靠近球)我得到了球的距离?你所说的“得到代理的元素”是什么意思?你想得到的代理是什么?我想这可能是一个单独的问题,你应该做一个新的问题,特别是关于这个问题(使用相关代码),比如哪些球员你可以做类似
要求球员靠近球[键入self]
您将在指挥中心输出中获得一个列表。或者如果您想在屏幕上显示球员(然后让所有其他球员变为蓝色),请询问让球员靠近球[设置红色]
抱歉,我发布了一个删除部分重要代码的非常糟糕的示例。好的,我理解你的答案,但我还有另一个问题:如何获取代理集列表中的元素?抱歉,我对netlogo非常陌生。谢谢,为什么我要打印打印(会员?让球员靠近球)我得到了球的距离?你所说的“得到代理的元素”是什么意思?你想得到的代理是什么?我想这可能是一个单独的问题,你应该做一个新的问题,特别是关于这个问题(使用相关代码),比如哪些球员你可以做类似
要求球员靠近球[键入self]
您将在指挥中心输出中获得一个列表。或者如果您想在屏幕上显示球员(然后让所有其他球员变为蓝色),请询问让球员靠近球[设置红色]
to-report get-players-closer-to-the-ball
  report the-player with [distance the-ball <= 1]
end