如何在NetLogo中使用关键字为turtles on的turtles集合
从示例开始:如何在NetLogo中使用关键字为turtles on的turtles集合,netlogo,Netlogo,从示例开始: to move-cars ask turtles with [ shape = "car"] [ ifelse not can-move? 1 [ die! ] [ ifelse [ pcolor ] of patch-ahead 1 = red [] [ifelse any? turtles-on patch-ahead 1 [] [ fd 1 ] ]] ] 这是我搬家的程序。只有在前方没有红色区域或前方没有车辆时,车辆才能移动 我遇到的
to move-cars
ask turtles with [ shape = "car"] [
ifelse not can-move? 1
[ die! ]
[ ifelse [ pcolor ] of patch-ahead 1 = red [] [ifelse any? turtles-on patch-ahead 1 [] [ fd 1 ] ]]
]
这是我搬家的程序。只有在前方没有红色区域或前方没有车辆时,车辆才能移动
我遇到的问题是由ifelse第二部分中的海龟引起的,因为它检查所有海龟。我确实有好几种汽车品种,还有其他我不想检查的海龟代理商。我只想检查海龟是否为特定的海龟设置打开。在这种情况下
turtles with [ shape = "car" ]
总而言之,我想问:(大写)前面一块空地上有车形的海龟吗?
我试过了,但没用:
[ ifelse [ pcolor ] of patch-ahead 1 = red [] [ifelse any? turtles-on turtles with [shape = "car"] patch-ahead 1 [] [ fd 1 ] ]]
最后,我解决了这个问题,但这个解决方案既丑陋又多余。我检查了是否有特定的品种领先一个补丁,因为我知道我可以在上使用品种。这是:
[ ifelse [pcolor] of patch-ahead 1 = red [] [ ifelse any? carsSN-on patch-ahead 1 or any? carsSE-on patch-ahead 1 or any? carsEN-on patch-ahead 1 or any? carsWS-on patch-ahead 1 or any? carsNS-on patch-ahead 1 or any? carsNE-on patch-ahead 1 or any? carsES-on patch-ahead 1[ ] [ fd 1 ] ] ]
您能建议更好的方法在特定代理集上使用turtles吗?您使用[shape=“car”]的
方法存在一些语法问题,否则应该是可行的方法。您不能在海龟上使用海龟
,因为海龟只在补丁上下文中才有意义。同样,您需要使用
的原语
指示您想要特定补丁(补丁前1)的上的海龟。您的方法的一个变体是:
ask cars [
if patch-ahead 1 != nobody [
if [pcolor] of patch-ahead 1 != red and [ count turtles-here with [ shape = "car"] ] of patch-ahead 1 = 0 [
fd 1
]
]
]
另外,您在任何情况下使用ifelse
而不是仅使用!=在if语句中(就像我在这里做的那样)
作为补充说明,我个人建议不要在不同方向行驶的汽车上使用不同的品种。我更喜欢一个能遵循相同规则的单一品种。它更干净,而且你仍然可以在品种内区分(例如,海龟自己的开始方向)。它还可以通过只处理一个品种来消除您在这里遇到的问题。也就是说,我相信在某些情况下,多品种会更好,如果它对你的模型有意义,那就太好了 您使用[shape=“car”]
的方法有一些语法问题,否则应该是可行的方法。您不能在海龟上使用海龟
,因为海龟只在补丁上下文中才有意义。同样,您需要使用
的原语
指示您想要特定补丁(补丁前1)的上的海龟。您的方法的一个变体是:
ask cars [
if patch-ahead 1 != nobody [
if [pcolor] of patch-ahead 1 != red and [ count turtles-here with [ shape = "car"] ] of patch-ahead 1 = 0 [
fd 1
]
]
]
另外,您在任何情况下使用ifelse
而不是仅使用!=在if语句中(就像我在这里做的那样)
作为补充说明,我个人建议不要在不同方向行驶的汽车上使用不同的品种。我更喜欢一个能遵循相同规则的单一品种。它更干净,而且你仍然可以在品种内区分(例如,海龟自己的开始方向)。它还可以通过只处理一个品种来消除您在这里遇到的问题。也就是说,我相信在某些情况下,多品种会更好,如果它对你的模型有意义,那就太好了
[在这里用[shape=“car”]]计数海龟,前面的补丁1=0
效果很好。。。感谢您的帮助[使用[shape=“car”]]的patch ahead 1=0在这里计算海龟数
效果很好。。。谢谢你的帮助