我是NetLogo新手,我对以下代码有一些疑问:
people-own [
walker-type ;; can be "cautious", "adaptive" or "reckless"
walked-through-red?
own-profit
adaptive-threshold-time-gained
adaptive-threshold-time-gained-people-crossing
adaptive-gone-reckless
cooldown
]在OO背景下,我认为这是对象属性( people品种)的某种枚举。你可以清楚地看到,有三种类型的人:谨慎步行者,适应性步行者和鲁莽步行者。此外,以adaptive (adaptive-threshold-time-gained等)开头的属性只有在当前人员是adaptive时才有意义。
我希望有办法更优雅地表达这一点。在OO编程语言中,您将使用继承来创建三个子类(每个walker-type一个子类),但到目前为止,我知道NetLogo中不存在这样的子类。
建议的表达方式是什么?
发布于 2014-09-17 19:29:23
缺乏遗传(也许是作为亚种)是NetLogo的一个严重限制,尽管最终它只是偶尔对我有影响。根据应用程序的不同,有几个可能的解决方案。
turtles,那么您可以拥有turtles-own的公共特性,而breeds-own只具有类型特定的特征。people的子集),并对每个代理集调用不同的过程(或者编写在member?测试中分支的过程)。不幸的是,如果创建了任何新成员,则必须显式地增强这些代理集,因此您将失去品种的“特殊代理集”功能。hth。
https://stackoverflow.com/questions/25889949
复制相似问题