设置半径找到伴侣乌龟

时间:2019-05-13 09:56:46

标签: netlogo

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

首先,您需要一个turtle属性,该属性存储每只乌龟的值。这样做的方法是使用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