在 Netlogo 中设置标题的概率范围

Set probability range for heading in Netlogo

我的问题包括两件事:

  1. 如何为标题编码 4 个不同的范围

    • 一个。 315 - 45
    • b。 46 - 135
    • c。 136 - 225
    • d。 226- 314

2.how 编码选择此范围的概率。 (我在下面附上图片以使其清楚)

我想做的是:

a) 用于标题 a;海龟选择这个范围内的任何一个的概率应该是 85%

b) 对于航向 b、c 和 b,将有 5% 的海龟选择该航向的任何一侧

由于我不太会用文字解释,所以我附上了我打算做的事情的图片

这是我的代码

to random-behave

  let p random-float 100

  if (p >= 85)
  [set  heading heading + 45
    set heading heading - 45]

  if (p >= 15)
   [set  heading other heading + 45
    set heading other heading - 45]

    if not can-move? 1 [ rt 180 ]

   fd 1
  ]
end

我尝试实现 rnd extension 但我看不到应该把它放在哪里。如果可能的话,有没有办法根据航向的度数对航向进行编码,而不是 if (p >=15)?因为 other 不能在这里使用。

提前致谢。

您不需要 rnd 扩展,您使用 random-float 的方法很好。但是,您需要使用 if-else 而不是 if,因为返回的随机数 'p' >85 也将 >15。相反,您需要将 0 到 100 的间隔分解为适当长度的片段。这个没有测试过。

to random-behave

  let p random-float 100

  if-else p <= 85
  [ print "got up to 85" ]
  [ if-else p <= 90
    [ print "got 85 to 90"]
    [ if-else p <= 95
      [ print "got 90 to 95" ]
      [ print "got 95 to 100" ]
    ]
  ]

  if not can-move? 1 [ rt 180 ]
  fd 1
end

您的 heading 计算也有错误。我只回答了概率部分,因为那是你专门问的。但是如果您需要 heading.

方面的帮助,您应该问一个新问题