本文介绍了NetLOGO:补丁立即消失,而不是连续消失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图展示砍伐森林与重新造林的对比。为了做到这一点,我制作了一个滑块来显示正在进行的植树造林和砍伐森林的工作。然而,每次11点整,整个场景都被破坏了,我不知道为什么。

patches-own
[reforestar
deforestar]
breed [ potreros potrero ]  ; sheep is its own plural, so we use "a-sheep" as the singular
breed [ bordes borde ]
breed [ bosques bosque ]

to setup
  clear-all
  set-default-shape turtles "frog top"
  
  ask patches 
  [ifelse pcolor = 44
        [ set reforestar tiempo-sin-reforestar ]
    [ set reforestar tiempo-sin-reforestar * 0.5];
  ]
    
  
   
    reset-ticks
end

to go
  ask patches [ reforestacion ]
   ask patches [ deforestacion ]
  
  tick
end

to reforestacion  ; patch procedure
  ; countdown on brown patches: if you reach 0, grow some grass
  if pcolor = 35 [
    ifelse reforestar <= 0
      [ set pcolor 44
        set reforestar tiempo-sin-reforestar ]
      [ set reforestar reforestar - 1 ]
  ]
  
end  
  
to deforestacion
   if pcolor = 44 [
    ifelse deforestar >= 10
      [ set pcolor 35
        set deforestar tasa-deforestacion ]
      [ set deforestar deforestar + 1 ]
  ]
end

其想法是,一些随机的棕色斑块(去堆积)变成黄色(堆积),但由于某种原因,它只是一下子改变了一切。

推荐答案

您并不是要求随机数量的补丁程序来执行某项操作,而是要求具有pCOLOR 44的所有补丁程序每刻度数到10,当它们达到10时,它们就会被毁掉。

如果您想要求随机数量的补丁进行森林砍伐,请尝试类似

的操作
ask n-of (random ([count patches with pcolor = 44] * deforestationRate)) patches with pcolor = 44 [set pcolor 35 set deforestar tasa-deforestacion]
其中deForestRate是一个介于0到1之间的滑块的值。这将执行的操作是计算可以砍伐的斑块的数量,然后从这些斑块中随机选择要砍伐的斑块。如果只使用计数本身,那么森林中介于0%到100%之间的每一个刻度都将被毁林,但如果添加deForestRate滑块值,它可能是您想要的任何最大百分比。(例如,如果您将其设置为0.1,则每个刻度只能砍伐多达10%的森林)您也可以对重新造林执行相同的操作,并使用不同的滑块/值作为比率。

(注意:我有一段时间没有使用NetLogo了,所以代码和圆括号可能不是100%正确的,但您明白了)

这篇关于NetLOGO:补丁立即消失,而不是连续消失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 17:14