【问题标题】:Set Radius to find a partner turtle设置半径寻找伙伴龟
【发布时间】:2019-05-13 09:56:45
【问题描述】:

我是 Netlogo 和一般编程方面的新手。 我想创建一个带有雌性和雄性乌龟的 netlogo 模型。两个种群都通过随机游走在世界上移动。女性人口应该找到一个伴侣并拥有“半径”属性。如果她在找到伴侣之前还没有找到伴侣,她自己的半径应该会扩大。如何在雌性海龟周围编程一个半径,如果她没有找到伴侣,它会在每个时间步后扩大?

感谢您的帮助!

【问题讨论】:

  • @Sonja23802 - 如果 JenB 的回答让您解决了这个特殊问题,请尽可能将答案标记为“已接受”:meta.stackexchange.com/a/5235

标签: netlogo


【解决方案1】:

首先,您需要一个海龟属性来存储每个海龟的值。方法是使用turtles-own 语句。然后您只需根据需要更改该值。基元in-radius查看指定距离内的一切,然后你可以通过是否有any?合适的伙伴来设置条件。你的代码看起来像(这是一个完整的模型):

turtles-own
[ search-radius
  mate
]

to setup
  clear-all
  create-turtles 20
  [ setxy random-xcor random-ycor
    set color blue
    set search-radius 1
  ]
  reset-ticks
end

to go
  check-for-mate
  tick
end

to check-for-mate
  ask turtles with [color = blue]
  [ let candidates other turtles in-radius search-radius
    ifelse any? candidates
    [ set mate one-of candidates
      set color red
    ]
    [ set search-radius search-radius + 0.5 + random-float 1
    ]
  ]
end

【讨论】:

  • 非常感谢您的帮助!这样我就理解了编码的方式。我希望我再问你一件事不是无礼的。我有点失落。有一种方法可以在孵化命令中从海龟中生成海龟。这个想法是在检查半径内的配偶后随机孵化 1,2 或 3 只海龟/雌性海龟,新海龟的性别是随机的。你能给我一个提示如何设置随机性别吗?在孵化 1 [设置性别之一 ["male" "female"] ] 后尝试过,但这不起作用。
  • 应该可以的。请提出一个新问题,详细说明您尝试了什么以及发生了什么(错误消息?您得到了什么行为?)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2011-01-11
  • 2019-03-29
  • 2021-07-02
  • 2020-06-06
相关资源
最近更新 更多