Ошибка в NetLo go версии 3.1.5: ничего с именем PICKUP-NEAREST-CIRCLE не было определено - PullRequest
1 голос
/ 27 марта 2020

Я новичок в Netlo go, и я хотел создать программу, в которой я мог бы перетаскивать черепах, куда бы я ни захотел (изменить место aturtle, нажав на него и перетащив его в другое место), вот код, который я нашел на 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 

1 Ответ

0 голосов
/ 27 марта 2020

В вашей процедуре 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 
    ]
  ]

Когда NetLo go сообщает, что не может найти что-то, первое, на что нужно обратить внимание - это опечатка. Кроме того, если вы снова посмотрите на видео примерно через 4 минуты, вы увидите, что в вашей go процедуре отсутствует блок if.

if mouse-down? and previous-button-state = "down-and-dragging" [
  ask circle-picked [ setxy mouse-xcor mouse-ycor ]
]

Это часть кода, которая фактически перемещает окружность при ее перетаскивании. Добавьте это, и вы должны хорошо.

NetLo go 3.5.1 - очень старая версия. Я бы предложил загрузить последнюю версию.

Надеюсь, это поможет, Чарльз

...