netlogo - NetLogo 3.1.5 版中的错误:没有定义任何名为 PICKUP-NEAREST-CIRCLE
问题描述
我是netlogo的初学者,我想制作一个程序,我可以将海龟拖到任何我想去的地方(通过单击它来更改海龟的位置并将其拖到另一个地方)这是我找到的代码youtube,但它不起作用!我收到此错误“未定义任何名为 PICKUP-NEAREST-CIRCLE 的内容”
globals [
previous-button-state
anybody-picked-up?
circle-picked]
to setup
ca
create-turtles 10
ask turtles[
set shape "circle"
set size 3
setxy random-xcor random-ycor
]
set anybody-picked-up? false
set previous-button-state "up"
end
to go
if mouse-inside?[
if mouse-down? and previous-button-state ="up"[
try-to-pickup-nearest-circle
ifelse anybody-picked-up?
[set previous-button-state "down-and-dragging"]
[set previous-button-state "just down"]
]
if not mouse-down? [
set anybody-picked-up? false
set previous-button-state "up"
]
]
;waite .01
end
to try-to pickup-nearest-circle
let candidate min-one-of turtles [distancexy mouse-xcor mouse-ycor]
ask condidate [
if distancexy mouse-xcor mouse-ycor < size / 2 [
set anybody-piced-up? true
set circle-picked candidate
]
]
end
解决方案
您的程序中至少有三个拼写错误try-to-pickup-nearest-circle
:第一行缺少“-”,第三行拼写错误“condidate”,第五行拼写错误“piced”。更正后,它会是
to try-to-pickup-nearest-circle
let candidate min-one-of turtles [distancexy mouse-xcor mouse-ycor]
ask candidate [
if distancexy mouse-xcor mouse-ycor < size / 2 [
set anybody-picked-up? true
set circle-picked candidate
]
]
当 NetLogo 告诉您它找不到某些东西时,首先要查找的是错字。此外,如果您在第 4 分钟左右再次查看视频,您会发现您的go
程序缺少一个if
块。
if mouse-down? and previous-button-state = "down-and-dragging" [
ask circle-picked [ setxy mouse-xcor mouse-ycor ]
]
这是在拖动圆圈时实际移动圆圈的代码部分。加上那个,你应该没问题。
NetLogo 3.5.1 是一个非常老的版本。我建议下载最新版本。
推荐阅读
- python - simple moving average in python
- python - 每次运行代码时都不会出现 PyQt5 窗口
- postgresql - 无法在 AWS 无服务器数据库上创建 Postgres 触发器
- keycloak - 添加具有凭据的新用户 临时属性不起作用
- php - 为什么在 codeigniter 中运行查询时总是收到消息“子句并包含非聚合列”?
- asp.net-mvc - 使用预览“完成交换”步骤进行交换重新启动生产槽
- php - Is it unsafe to use query strings in the url?
- ruby-on-rails - 无法连接到本地主机上的 rails docker 容器
- nhibernate - 如何在 Fluent NHibernate 中使用内连接从右表中获取单个属性
- jekyll - Jekyll group_by 数组的第一个元素