代码:
to-report check-wall
hatch 1[
set color grey
set size ([size] of one-of walls) / 2
while [distance myself < (2 * ([size] of myself)) and (pycor + ([size] of one-of walls) / 2) < max-pycor ]
[
fd ([size] of one-of walls) / 2
if any? walls in-radius size
[
report true
]
]
die
]
report false
错误:
REPORT必须立即在TO-REPORT中。 inboxturtle时出错 260运行REPORT由程序CHECK-WALL
调用
请忽略代码的功能。我没有详细说明,因为我不认为这是必需的。 注意:我希望当内部if为true时,它会停止方法并返回。因此,创建一个变量并将其设置为true,如果然后在最后返回则不是一个可能的选项。
答案 0 :(得分:1)
这是NetLogo语言的一个令人遗憾的限制,report
无法在ask
,hatch
和类似原语中使用。
但是在这种情况下,即使没有限制,代码仍然是不对的,因为你想要在离开程序的路上杀死乌龟,只使用{{ 1}}没有做到这一点。
您可以按照以下方式修复:
report