Netlogo:传播恐惧(改变颜色和速度)
在模拟开始时,我有n个海龟恐慌Netlogo:传播恐惧(改变颜色和速度),netlogo,panic,Netlogo,Panic,在模拟开始时,我有n个海龟恐慌紧急表示设置恐惧?为真,设置为红色,速度应为1的2档。那群乌龟被认为是在传播他们的恐惧。 现在我有两个问题: 惊慌失措的海龟不会比正常的海龟移动得快 我尝试了海龟自己的[速度]和为惊慌失措的海龟设置速度+2(虽然恐惧?=真),但它不起作用 惊慌失措的海龟不会传播他们的恐惧 我有以下代码: to panic set color red set speed speed + 2 set fear? true end to fear ask n-o
紧急
表示设置恐惧?
为真,设置为红色,速度应为1的2档。那群乌龟被认为是在传播他们的恐惧。
现在我有两个问题:
- 惊慌失措的海龟不会比正常的海龟移动得快
海龟自己的[速度]
和为惊慌失措的海龟设置速度+2
(虽然恐惧?=真),但它不起作用
- 惊慌失措的海龟不会传播他们的恐惧
to panic
set color red
set speed speed + 2
set fear? true
end
to fear
ask n-of number-of-panicking-people turtles [panic]
end
to spread
ask turtles with [fear? = true and color != red]
[ask other turtles-here with [fear? = false]
[if (random-float 100) < spreadfear
[panic]]]
end
惊慌失措
设置颜色为红色
设定速度+2
设置恐惧?真的
结束
怕
询问惊慌失措的人数海龟[惊慌失措]
结束
散布
问海龟[恐惧?=真实和颜色!=红色]
[带着[恐惧?=错误]询问这里的其他海龟]
[如果(随机浮动100)<
[恐慌]]
结束
到目前为止唯一有效的方法就是“害怕”,有些海龟会变红,但速度不会改变,等等
谢谢大家! 那更好!至少,在这里,有一些代码可以锁定。不过,为了诊断为什么速度更快的海龟移动不快,我们需要查看代码中它们实际移动的部分。我想你应该在某个地方有类似于
fd-speed
的东西。不是这样吗?至于为什么恐惧没有扩散,我觉得你的代码没问题。我怀疑这可能与传播恐惧有关。它的定义是什么?它的价值是什么?作为旁白:你不需要写恐惧?=正确
或恐惧?=错误
。它已经是布尔值了。只要写恐惧?
或不恐惧?
。例如:用[fear?和颜色!=红色]询问海龟
和用[not fear?]询问其他海龟
。spreadfear是一个从0到100递增0.1的滑块。无论滑块的值如何,它都不起作用。我还没有在我的代码中使用速度,但在某些地方只使用了fd1、fd0和fd-1。我所做的只是提到海龟们自己的速度,仅此而已。速度通常设置为1,所以说速度+2是有意义的,还是我必须先说所有海龟的速度都设置为1,然后才能说设置速度+2?我试过(害怕?),但它给了我一个错误消息。但这只是一个小错误,还不需要修复。关于速度
:如果不在某个地方实际使用某个变量,就不能期望该变量产生效果。NetLogo不知道你想要speed
来代表海龟的速度。尝试分别用fd速度
和bk速度
替换fd 1
和fd-1
。