Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NetLogo:;代码可以';“不要被补丁程序运行”;在v5.1.0中运行在V4.0.3中开发的程序_Netlogo - Fatal编程技术网

NetLogo:;代码可以';“不要被补丁程序运行”;在v5.1.0中运行在V4.0.3中开发的程序

NetLogo:;代码可以';“不要被补丁程序运行”;在v5.1.0中运行在V4.0.3中开发的程序,netlogo,Netlogo,我正在尝试在NetLogo版本5.1.0中运行在版本4.0.3中开发的NetLogo程序。程序本身在旧版本的NetLogo中运行良好,但当我尝试在5.1.0版中运行时,收到以下错误消息: “此代码不能由修补程序运行,只能由观察者运行 补丁程序19 32运行时出错 通过程序GO调用 按“开始”按钮调用 我试着做了一些过渡指南中提供的明显调整,但无法调试程序。如有任何想法或建议,将不胜感激。整个程序的代码如下: globals [z diver clrrand simp vviolet oorang

我正在尝试在NetLogo版本5.1.0中运行在版本4.0.3中开发的NetLogo程序。程序本身在旧版本的NetLogo中运行良好,但当我尝试在5.1.0版中运行时,收到以下错误消息:

“此代码不能由修补程序运行,只能由观察者运行 补丁程序19 32运行时出错 通过程序GO调用 按“开始”按钮调用

我试着做了一些过渡指南中提供的明显调整,但无法调试程序。如有任何想法或建议,将不胜感激。整个程序的代码如下:

globals [z diver clrrand simp vviolet oorange bbrown yyellow bblue llime total sumdiver matrix-list yellowtrans p
redtrans browntrans violettrans bluetrans orangetrans limetrans]

to setup
  ;; (for this model to work with NetLogo's new plotting features,
  ;; __clear-all-and-reset-ticks should be replaced with clear-all at
  ;; the beginning of your setup procedure and reset-ticks at the end
  ;; of the procedure.)
  __clear-all-and-reset-ticks
  setup-patches
  set sumdiver 0


  set redtrans       (list 0.0  0.9  0.1  0.0  0.0  0.0  0.0)   
  set yellowtrans    (list 0.0  0.8  0.1  0.1  0.0  0.0  0.0)   
  set browntrans     (list 0.0  0.0  0.8  0.1  0.1  0.0  0.0)   
  set violettrans    (list 0.0  0.0  0.0  0.8  0.1  0.1  0.0)   
  set bluetrans      (list 0.0  0.0  0.0  0.0  0.8  0.1  0.1)   
  set orangetrans    (list 0.0  0.0  0.0  0.0  0.0  0.8  0.2)   
  set limetrans      (list 0.0  0.0  0.0  0.0  0.0  0.0  1.0)   

end



to setup-patches
  ask patches [ 
  set z random 100
  if z <= 100 [ set pcolor yellow ]  
        ]
end



to go
  ignite
  fire_spread
  succession
  do_plots
  tick
end




to ignite
  ask patches [if pcolor != black    
      [if random-float 1 < start 
          [set pcolor red]
        ]
      ]
end




to fire_spread

   while [any? patches with [pcolor = red]]  [ask patches [
    if pcolor = red   [set pcolor 14
                      ask neighbors4 [

      if (random-float 1) < p_fire_spread and pcolor != 14 and pcolor != black
        [ set pcolor red]
        ]
      ]
    ]
  ]

end



to succession

  ask patches [


  if pcolor = 14 [
       set clrrand random-float 1
       set p 0
       (foreach redtrans [ 14 yellow brown violet blue orange lime]  [

           if clrrand > p and clrrand <= (p + ?1) [set pcolor ?2  stop]
           set p (p + ?1)
                 ])
        stop                  
      ]





   if pcolor = yellow [
       set clrrand random-float 1
       set p 0
       (foreach yellowtrans [ 14 yellow brown violet blue orange lime]  [

           if clrrand > p and clrrand <= (p + ?1) [set pcolor ?2  stop]
           set p (p + ?1)
                 ])
        stop   

      ]



   if pcolor = brown [
       set clrrand random-float 1
       set p 0
       (foreach browntrans [ 14 yellow brown violet blue orange lime]  [

           if clrrand > p and clrrand <= (p + ?1) [set pcolor ?2  stop]
           set p (p + ?1)
                 ])
        stop                 
      ]



    if pcolor = violet [
       set clrrand random-float 1
       set p 0
       (foreach violettrans [ 14 yellow brown violet blue orange lime]  [

           if clrrand > p and clrrand <= (p + ?1) [set pcolor ?2  stop]
           set p (p + ?1)
                 ])
        stop   

      ]


    if pcolor = blue [
       set clrrand random-float 1
       set p 0
       (foreach bluetrans [ 14 yellow brown violet blue orange lime]  [

           if clrrand > p and clrrand <= (p + ?1) [set pcolor ?2  stop]
           set p (p + ?1)
                 ])
        stop                 
      ]


     if pcolor = orange [
       set clrrand random-float 1
       set p 0
       (foreach orangetrans [ 14 yellow brown violet blue orange lime]  [

           if clrrand > p and clrrand <= (p + ?1) [set pcolor ?2  stop]
           set p (p + ?1)
                 ])
        stop                 
      ]


     if pcolor = lime [
       set clrrand random-float 1
       set p 0
       (foreach limetrans [ 14 yellow brown violet blue orange lime]  [

           if clrrand > p and clrrand <= (p + ?1) [set pcolor ?2  stop]
           set p (p + ?1)
                 ])
        stop                 
      ]

    ]





end



;;  yellow is 45, brown is 35,  violet is 115, sky is 95, green is 55,lime is 65,  



to do_plots


set oorange count patches with [pcolor = orange]
set bbrown count patches with [pcolor = brown]
set vviolet count patches with [pcolor = violet]
set llime count patches with [pcolor = lime]
set yyellow count patches with [pcolor = yellow]
set bblue count patches with [pcolor = blue]
set-current-plot "abundances"
set-current-plot-pen "orange"
plot oorange
set-current-plot-pen "brown"
plot bbrown
set-current-plot-pen "violet"
plot vviolet
set-current-plot-pen "lime"
plot llime
set-current-plot-pen "yellow"
plot yyellow
set-current-plot-pen "blue"
plot bblue




 set total bbrown + oorange + vviolet + llime + yyellow + bblue
   set diver (1 / ((bbrown / total) ^ 2 + (oorange / total) ^ 2 + (vviolet / total) ^ 2 + (llime / total) ^ 2 + (yyellow / total) ^ 2 + (bblue / total) ^ 2))
   set-current-plot "Simpson's diversity index"
   plot diver
   if ticks > 50 and ticks < 201 [set sumdiver sumdiver + diver]

   if ticks = 201 [
       set sumdiver sumdiver / 150
       output-type "mean = "
       output-type precision sumdiver 2
      ]  
end
globals[z潜水员clrrand simp vviolet oorange bbrown yyellow bblue llime总集水员矩阵列表yellowtrans p
红棕紫罗兰蓝橙橙柠檬红]
设置
;; (为了使此模型与NetLogo的新打印功能配合使用,
全部清除和重置记号应替换为全部清除
;设置过程的开始,并在结束时重置刻度
;程序的细节。)
__清除所有刻度并重置刻度
安装补丁
设置潜水器0
设置redtrans(列表0.0.9 0.1 0.0 0.0.0 0.0)
设置黄色变速器(列表0.0.8 0.1 0.1 0.0.0 0.0)
设置browntrans(列表0.0.0.8 0.1 0.1 0.0.0 0.0)
设置violettrans(列表0.0.0.0.8 0.1 0.1 0.0)
设置bluetrans(列表0.0.0.0.0.8 0.1 0.1)
设置orangetrans(列表0.0.0.0.0.0.8 0.2)
设置limetrans(列表0.0.0.0.0.0.0.0 1.0)
终止
设置修补程序
询问补丁[
将z随机设置为100
如果z p和clrrand p和clrrand p和clrrand p和clrrand p和clrrand p和clrrand 50和刻度<201[设置潜水器潜水器潜水器+潜水器]
如果ticks=201[
设置潜水器潜水器/150
输出类型“平均值=”
输出型精密潜水器2
]  
终止

谢谢!

这是NetLogo中以前未报告的错误。很高兴您发现了它。我已将其最小化,并在此处报告:


为了解决这个问题,您需要找到一种重写代码的方法,以避免在
foreach

中使用
stop
,从而使人困惑。您能提供完整的.nlogo文件的URL吗?我不明白您到目前为止显示的内容如何会产生此错误。谢谢。他是完整的.nlogo文件的链接吗关于