Netlogo代理错误

Netlogo代理错误,netlogo,Netlogo,我正在实施一个演讲厅的疏散模拟。我有两种类型的学生,一种是坐在桌子上的学生,另一种是随机分配的额外学生。因此我创建了两个滑块,以便按照所需的数量分配学生。滑块名为extrastudents和标准学生。当模拟开始时,我希望所有的学生(包括桌子上的学生和临时学生)都去最近的出口(我有两个出口)。因此,我只对坐下来的学生实施了以下操作: ask standarstudents [ ifelse pycor > 0 [ set target one-of nexits] [ set target

我正在实施一个演讲厅的疏散模拟。我有两种类型的学生,一种是坐在桌子上的学生,另一种是随机分配的额外学生。因此我创建了两个滑块,以便按照所需的数量分配学生。滑块名为extrastudents标准学生。当模拟开始时,我希望所有的学生(包括桌子上的学生和临时学生)都去最近的出口(我有两个出口)。因此,我只对坐下来的学生实施了以下操作:

ask standarstudents  [
ifelse pycor > 0
[ set target one-of nexits]
[ set target one-of sexits]
face target
]
下一站是北出口。 Sexits是南部出口

问题是我得到了这个错误,我可以继续:

要求预期输入为代理或代理集,但得到的是数字3。 观察者运行ASK时出错。(数字3来自用户正在拾取的滑块) 由过程设置调用 通过“设置”按钮调用

org.nlogo.nvm.ArgumentTypeException:要求预期输入为代理或代理集,但得到的是数字3

有什么想法吗?

好吧,如果你有名为
extrastudents
standarstudents
的滑块,这两个变量是数值,表示你想要多少学生,而不是学生本身。正如错误消息所说,
ask
原语与代表“您正在询问的人”的代理集一起工作

你真的创造了你的学生吗?在界面上放置滑块本身不会起任何作用。我建议将您的滑块重命名为
num extrastudens
num standarstudents
之类的名称,然后使用如下代码初始化您的填充:

breed [ extrastudents extrastudent ]
breed [ standarstudents standarstudent ]

to setup
  create-standarstudents num-standarstudents
  create-extrastudents num-extrastudents
end

然后,您发布的代码会起作用,因为
临时学生
标准学生
将是海龟的品种,因此是代理测试。

此外,我不知道您是否意识到这一点,但
pycor
报告海龟所在的补丁的坐标,如果海龟不在一块区域的中心,它所处的坐标将不同。一只
ycor
0.5
的海龟将拥有
pycor=0
,因此
pycor>0
将是错误的,即使海龟略高于原点,这可能是你想要的,也可能不是你想要的。@NicolasPayette:ycor为0.5的海龟的pycor为1,而不是0。@Sethtue这是我的错误——谢谢你指出它
0.5
是四舍五入的,所以这是一个坏例子。正确的答案应该是
ycor
0.49
,这将给出
pycor
0
(因此一般观点仍然成立…)