Model 亨特成功网标志

Model 亨特成功网标志,model,netlogo,Model,Netlogo,我已经给我的海龟编好了出去打猎的代码,但是当它们发现猎物时,它们只是简单地吃掉了猎物,是否有必要为它们的成功几率增加一个数学因素,而不是总是100% 基本上,当他们找到猎物时,掷骰子看看他们是否能吃掉它 to search ;when wolf is hungry set energy energy - 1 fd v-wolf if random 600 = 1 ;; frequency of turn [ ifelse random 2 = 0 ;; 50:50 c

我已经给我的海龟编好了出去打猎的代码,但是当它们发现猎物时,它们只是简单地吃掉了猎物,是否有必要为它们的成功几率增加一个数学因素,而不是总是100%

基本上,当他们找到猎物时,掷骰子看看他们是否能吃掉它

to search ;when wolf is hungry 
  set energy  energy  - 1
    fd v-wolf
   if random 600 = 1 ;; frequency of turn
  [ ifelse random 2 = 0 ;; 50:50 chance of left or right
    [ rt 15 ] ;; could add some variation to this with random-normal 45 5
    [ lt 15 ]] ;; so that it samples from a dist with mean 45 SD 5

  ;; check if it can see a prey/food item
  ;; here i think we probably pick one of several possible prey 
  ;; that are detectable randomly using the one-of command.
  ;; We should probably select the nearest one instead, but 
  ;; i cant code that off the top of my head
  if any? prey in-radius smell [set heading towards one-of prey in-radius smell]
  if energy < 0 [die]

end


To eat ;to kill prey and eat it
  let kill one-of prey-here in-radius smell
  ;move-to (need to code it so they move toward prey in a radius
  ;need to code in a variable for success too
  if kill != nobody
    [ask kill [ die ]
      set energy energy + 10000]
end
进行搜索;狼饿的时候
设置能量-1
fdv-wolf
如果随机600=1;;轮灌频率
[ifelse random 2=0;;左或右的概率为50:50
[rt 15];;可以通过随机正态分布45 5增加一些变异
[lt 15];;因此,它从一个平均值为45 SD 5的区域取样
;; 检查是否能看到猎物/食物
;; 在这里,我想我们可能会从几个可能的猎物中挑选一个
;; 可以使用命令之一随机检测到的。
;; 我们可能应该选择最近的一个,但是
;; 我无法从头顶上把它编码下来
如果有的话?半径气味中的猎物[设置朝向半径气味中的一个猎物]
如果能量<0[死亡]
结束

吃;杀死猎物并吃掉它 让我们在这里杀死一个猎物 ;移动到(需要对其进行编码,以便它们以半径向猎物移动) ;也需要为成功编写变量 如果杀人 [要求杀死[死亡] 设置能量+10000] 结束
是的,您可以生成一个随机数,然后仅在该随机数满足某些条件时执行kill命令。通常的方法是生成一个介于0和1之间的随机数(即NetLogo中的
随机浮点1
),然后执行类似于
如果随机浮点1<0.4[]
例如,如果您想要40%的概率

针对评论:

to eat
  let kill one-of prey-here in-radius smell
  if kill != nobody and random-float 1 < 0.4
  [ ask kill [ die ]
    set energy energy + 10000 ]
end
吃东西 让我们在这里杀死一个猎物 如果kill!=无人和随机浮动1<0.4 [要求杀死[死亡] 设置能量+10000] 结束
请尝试理解这是做什么的,并首先自己思考答案。如果你不理解任何命令的含义,或任何命令序列的逻辑是什么,在你理解之前不要继续。如果你不在代码容易的时候学习,你将永远无法解决你需要做的更困难的事情n您正在构建的模型。

要吃;要杀死猎物并吃掉它,让我们在半径气味中杀死其中一个猎物;如果kill!=nobody[ask kill[die]set energy energy+10000]结束,则需要输入一个变量以获得成功。这是我的狩猎命令。我应该在哪里添加随机浮点命令?