【发布时间】:2013-03-03 11:59:10
【问题描述】:
我正在实施一个演讲厅的疏散模拟。我有两种类型的学生,一种是坐在桌子上,另一种是在课堂内随机分配的额外学生。所以我按顺序创建了 两个滑块将学生分配到所需的人数。滑块被命名为 extrastudents 和 standarstudents。当模拟开始时,我希望所有学生(包括桌子和临时学生)都去最近的出口(我有两个出口)。所以我只为坐下的学生实施了这个:
ask standarstudents [
ifelse pycor > 0
[ set target one-of nexits]
[ set target one-of sexits]
face target
]
Nexits 是北出口。 Sexits 是南出口。
问题是我得到了这个错误,我可以继续:
ASK 期望输入是代理或代理集,但得到了数字 3。 观察者运行 ASK 时出错。(数字 3 来自用户选择的滑块) 由过程 SETUP 调用 由按钮“设置”调用
org.nlogo.nvm.ArgumentTypeException:ASK 预期输入是代理或代理集,但得到了数字 3。
有什么想法吗?
【问题讨论】:
-
另外,我不知道你是否知道这一点,但是
pycor报告了海龟所在的 patch 的坐标,这将不同于turtle 所在的坐标(如果它不在补丁的中心)。ycor为0.5的海龟将具有pycor = 0,因此即使海龟略高于原点,pycor > 0也会为假,这可能是也可能不是您想要的。 -
@NicolasPayette:ycor 为 0.5 的海龟的 pycor 为 1,而不是 0。
-
@SethTisue 我的错误——感谢您指出。
0.5被四舍五入,所以这是一个不好的例子。正确的应该是0.49中的ycor,它将给出0中的pycor(所以一般观点仍然存在......)
标签: netlogo