【问题标题】:NetLogo - move turtle to closest turtleNetLogo - 将海龟移动到最近的海龟
【发布时间】:2021-01-14 06:20:02
【问题描述】:

我遵循“银行储备”模型和模型库的“走向目标示例”代码示例的混合原则。但不是将人(乌龟)移动到随机银行(乌龟),而是需要人(乌龟)移动到最近的银行(乌龟)。按照我的代码尝试:

if cash >= 100[                      ;; go to the nearest bank for and depose the money for saving
  move-to bank with-min [distance]]] ;; move turtle to closest bank (turtle)

接下来我可以尝试什么?

【问题讨论】:

  • 请描述问题。您是否收到错误消息(如果有,是什么消息和哪一行),还是它正在做一些超出您预期的事情?我的猜测是你没有告诉它测量距离的目标是什么,以便它可以找到距离最小的目标。
  • @JenB 让您发表评论。想法是,被称为“人”的乌龟应该移动到最近的(就距离而言)称为“银行”的乌龟。我的问题是,我不知道如何编写这个想法。我的第一种方法如下:to go ask persons [ if cash >= 100[ ;; go to the nearest bank for saving move-to bank with-min [distance]]]如果还有其他不确定性,请告诉我。

标签: netlogo


【解决方案1】:

为了将人(乌龟)移动到最近的银行(乌龟),我使用了以下代码行:

to go
  ask persons [
    set cash cash - 3 ;; removes 3$ within each tick
    set label cash    ;; renews the label
    if cash <= 0[
      move-to min-one-of other banks [distance myself] ;; moves to the closest bank
    ]
  ]

min-one-ofmyself 是此解决方案的关键字。

【讨论】:

    【解决方案2】:

    distance 的 NetLogo 字典条目与您的问题非常相似 - 在这种情况下,找到最远的海龟。你还没有告诉distance 去哪里找距离,求问的乌龟。试试这个:

    move-to min-one-of banks [distance myself]
    

    但是,我原以为您的编码方式应该会生成一条错误消息,所以我不确定其他地方是否还有其他问题。

    【讨论】:

    • 感谢您的帮助。现在,在插入我认为有意义的关键字“我自己”后,我收到以下错误消息:BANK expected 1 input, a number 我假设 netlogo 需要一个精确的海龟来测量距离。但我想要一个最接近的。您认为有这种可能性吗?
    • 查看更新。您可以使用one-of,但有一个原始的min-one-of 可以一起完成所有操作
    最近更新 更多