NetLogo 版本 3.1.5 中的错误:未定义任何名为 PICKUP-NEAREST-CIRCLE 的内容

Error in NetLogo version 3.1.5 : Nothing named PICKUP-NEAREST-CIRCLE has been defined

我是 netlogo 的初学者,我想制作一个程序,我可以将海龟拖到任何我想去的地方(通过单击海龟并将其拖到另一个地方来更改海龟的位置) 这是我在 youtube 上找到的代码,但它不起作用!! 我收到这个错误 "Nothing named PICKUP-NEAREST-CIRCLE has been defined"

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",以及拼写错误的“[=24=” ]在第五个。更正后,应该是

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 是一个很旧的版本。我建议下载最新版本。