2014-08-27 22 views
2

我相信这是一个菜鸟问题,但我仍然习惯于NetLogo,所以请原谅我。如何检查变量对所有代理具有相同的值?

我正在使用我为品种创建的变​​量作为标志。如果所有品种的变量都具有相同的价值,我认为我的旗帜开着,我采取了一定的行动。我如何检查变量对于NetLogo中的所有代理/品种都具有相同的值?

例如:

breeds-own [ flagvariable ] 

我如何检查,对所有品种flagvariable = 1

谢谢。

回答

1

而不是让flagvariable成为品种自己的变量,它应该是龟类自己的变量,因为它被所有的龟类共享。然后,你可以使用all?,检查所有的海龟有它设置为某个值:

all? turtles [ flagvariable = 1] 

另外,如果你不小心的价值是什么,你可以使用remove-duplicates以确保它们都有相同的值:

length remove-duplicates [ flagvariable ] of turtles = 1 

在这里,我们正在计算当前有多少个不同的flagvariable值。如果它恰好是1,那么我们知道所有的乌龟都有相同的价值。

+0

谢谢。这似乎工作。但是,我现在意识到我的模型不会重复。看来我的程序在执行过程中只执行一次,然后在#1之后,执行程序不再执行,但滴答计数器继续增加。奇怪。对于什么可能造成这种“流程被冻结”的情况有什么见解? 谢谢。 – AEA 2014-08-27 19:48:10

+1

很高兴答案帮助你。确保它的标记是正确的,以帮助人们知道哪些问题已得到满意的回答。 关于你的新问题,我肯定需要更多的信息(包括代码片段)。也就是说,你应该在stackoverflow上打开一个新问题,而不是在这里的注释中提问。 – 2014-08-27 23:54:57

相关问题