Netlogo 靠近海龟们
我使用的是netlogo 6.0.4,我想让海龟离我更近 我使用此代码: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
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