Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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上下文未对齐_Netlogo - Fatal编程技术网

Netlogo上下文未对齐

Netlogo上下文未对齐,netlogo,Netlogo,从昨天开始,我改变了方向,现在我有了一个可行的方法来解决我发布的配对问题。然而,现在我被最简单的问题打败了。我不断地犯错误。1) MakeTrain是在安装程序上运行的第一个模块。它错误地说,我不能在观察者上下文中使用MakeTraph,因为它仅适用于修补程序/海龟。我从来没有让一个模块给出这样的错误,我经常使用模块代码编写。所以这让我很困惑。2) 无论我在哪里放置“勾号”(在其他过程中,勾号的结尾、开始、中间)都会进一步破坏代码,并出现相同的错误——“勾号是观察者,因此不会运行,因为这是X上下

从昨天开始,我改变了方向,现在我有了一个可行的方法来解决我发布的配对问题。然而,现在我被最简单的问题打败了。我不断地犯错误。1) MakeTrain是在安装程序上运行的第一个模块。它错误地说,我不能在观察者上下文中使用MakeTraph,因为它仅适用于修补程序/海龟。我从来没有让一个模块给出这样的错误,我经常使用模块代码编写。所以这让我很困惑。2) 无论我在哪里放置“勾号”(在其他过程中,勾号的结尾、开始、中间)都会进一步破坏代码,并出现相同的错误——“勾号是观察者,因此不会运行,因为这是X上下文。”我已经检查了十几次方括号和圆括号——休息一下,然后重新查看是否遗漏了什么。那里没有我能找到的错误。我使用的是Netlogo 6.1.1。我现在头晕目眩

在这个关头,我不想再发布一套冗长的代码,我想自己再做几次尝试。所以我在问,有没有人能提供一两条我可以用来调试的原则?比如,什么建立了上下文?我该怎么做才能使上下文成为我想要的,而不是先前命令“暗示”的内容?我如何使用一个模块,在这个模块中,补丁和海龟做了一些事情来进行自我设置,但仍然在设置中运行它?(注意——将内容移动到接口并不能解决问题。)什么设置“go”过程上下文,应该运行什么,以及有人可以做什么使其成为所需的?如何正确地放置tick(我以前从未遇到过的命令)


我已经浏览了stackoverflow、netlogo手册页面和编程指南以及我拥有的书籍,但仍然无法调试看似非常简单的问题

看一下Maketerrain过程的前几行。NetLogo根据所使用的原语解释上下文。如果第一行类似于:

set color red
然后NetLogo“知道”这是一个由海龟运行的过程(也就是说,这是海龟上下文),因为只有海龟才能设置颜色,因为
color
是海龟变量。但是,如果启动:

ask turtles
[ set color red
然后是观察者上下文,因为外部的“观察者”指示海龟(粗略地)做事

在NetLogo编程中,上下文实际上是一个非常重要的概念-当您执行以下操作时,您会不断更改上下文:

to demo
  ask patches
  [ ask one-of turtles-here 
    [ set color red
    ]
  ]
end

它在观察者上下文中开始,然后通过补丁进行迭代。从某种意义上说,它就像一个补丁一样思考(并且是在补丁上下文中)。然后用[打开下一个代码块,并切换到turtle上下文,以便“I”(当前补丁上随机选择的turtle)可以更改颜色。然后,每个]结束代码块都会退出上下文层。

NetLogo网站有一个包含各种教程的资源页。我坚信,在学习NetLogo时,教程非常重要,因为有一种思维方式是你真正需要的,一个好的教程将有助于教你思维方式,同时也教你语言。谢谢你的一般建议。我只用自己的计数器就解决了这个问题。滴答声似乎是一个基本的操作,我希望程序信任我,让我知道我想在哪里指定它。你征求建议来帮助你自己解决它,所以我的答案集中在寻找什么。如果您发布go过程的结束和MakeTrain过程的开始,我可能会发现问题。事实上,您得到的是上下文错误,这意味着过程没有按照您认为的方式工作,因此您自己的计数器会清除错误消息,但不会修复问题。