Как я могу найти черепаху по ярлыку и получить ее значение ВОЗ? - PullRequest
0 голосов
/ 11 июня 2018

Проблема

Я использую эту функцию получения, чтобы искать черепаху по ее метке.Но теперь мне нужно реорганизовать функцию, чтобы она возвращала значение who вместо самой черепахи.Мой код ниже получает следующее сообщение об ошибке.

OF expected input to be a turtle agentset or turtle but got NOBODY instead.

Попытки решить проблему

У меня был следующий код, который правильно выполнил поиск черепахи.

to-report get-user [user-name]
  report one-of users with [ label = user-name ]
end

Но когда я пытался выяснить, кто из этой черепахи, я продолжал получать nobody.

to-report get-user [user-name]
  report [who] of one-of users with [ label = user-name ]
end

Есть ли лучший способ найти кого-то из черепахи, учитывая строку и выполняя поискна этикетке?Или я на правильном пути?

1 Ответ

0 голосов
/ 11 июня 2018

Для меня это не проблема - вы уверены, что ваши строковые значения совпадают?Если вы введете значение и эта метка не существует, users with [ label = user-name ] вернет nobody - вам нужно будет учесть это, например:

to setup
  ca
  let names [ "John" "Jacob" "Jingle" "Heimer"  ]
  crt 4 [
    setxy ( who + 1 ) * 2 ( who + 1 ) * 2
    set label first names
    set names but-first names
  ]
  reset-ticks  
end

to go
  foreach [ "John" "Jacob" "Jingle" "Heimer" "Schmidt" ] [
    nm ->
    print get-user nm
  ]

end

to-report get-user [ user-name ]
  if any? turtles with [ label = user-name ] [
    report [who] of one-of turtles with [ label = user-name ]
  ]
  report "USER DOES NOT EXIST"
end
...