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