如何修复NetLogo报错‘已存在名为DOTTED-LINE-VISIBLE的全局变量’
解决NetLogo全局变量重复定义报错问题
问题根源
NetLogo的界面开关控件会自动创建同名的全局变量,你在代码里手动用globals [dotted-line-visible]再次定义,就会触发重复定义的报错。哪怕改变量名,只要界面开关和代码里的变量名一致,就会重复生成,导致新的同名报错。
修复步骤
移除重复的全局变量定义
直接删掉代码里的这一行:; Define a global variable to control the visibility of the dotted line globals [dotted-line-visible]界面上的
dotted-line-visible开关已经自动帮你创建了这个全局变量,无需手动定义。优化虚线绘制逻辑(可选但推荐)
你当前的draw-vertical-dotted-line每次调用都会创建新海龟,多次运行setup会导致大量隐藏的海龟堆积。可以修改代码,先清除旧的虚线海龟再重画:; Drawing the yellow dotted line if the switch is on (part of setup function) ; 先清除之前的虚线海龟 turtles with [color = yellow] die if dotted-line-visible [draw-vertical-dotted-line boundary]或者给虚线海龟添加专属标签,更精准地清除:
; Procedure to draw a vertical yellow dotted line to draw-vertical-dotted-line [boundary] create-turtles 1 [ hide-turtle set color yellow set size 0.5 set label "dotted-line" ; 添加标签 setxy boundary min-pycor set heading 0 while [ycor < max-pycor] [ pen-down forward 0.5 pen-up forward 0.5 ] ] end然后在setup里清除时用:
turtles with [label = "dotted-line"] die
内容的提问来源于stack exchange,提问作者user27912404
相关产品推荐
相关产品推荐

