Как проверить, есть ли на черепах 2 разных породы черепах - PullRequest
0 голосов
/ 12 апреля 2020

В заключительной части моего проекта я записываю каждый раз, когда автомобильная порода въезжает в терминах или в терминах netlo go, находится в том же патче или с координатами X и Y, что и люди, когда они перемещаются по краю экрана. , Если бы это было java, я мог бы сделать что-то вроде

, если Car.xPostion == Person.xPostion

(Сделай что-нибудь ...)

Но, к сожалению, я не знаю, как сделать то же самое в NetLo go, все, что я смог сделать до сих пор, это просто спросить эти две породы, дав каждой черепахе логическую переменную с именем movable и установив для них значение true, а для остальных - false, могу ли я проверить две координаты двух разных черепах на Netlo go? Это все, что я смог сделать до сих пор.


to record-accidents

  ask turtles with [movable? = true]

  [

  ]

1 Ответ

2 голосов
/ 12 апреля 2020

Если бы вы попробовали что-то похожее на ваш java подход, он потерпел бы неудачу, потому что позиции черепах непрерывны, а плавающие числа почти всегда не равны.

Если я правильно понял ваш вопрос, вы дали логическое значение Переменная называется подвижной? установите значение true для автомобилей и значение false для всех других пород. Вам не нужно этого делать, черепахи знают свою собственную породу, поэтому вы можете сделать ask cars.

Чтобы ответить на заданный вами вопрос c, есть несколько способов подойти к нему в зависимости от перспективы (сортировка of, какой агент отвечает).

Вы можете определить участки, где есть несчастные случаи :, который является ответом на ваш вопрос в заголовке (об идентификации участков с двумя породами).

let accident-locations patches with [any? people-here and any? cars-here]
if any? accident-locations
[ ask accident-locations
  [ <do something>

Но вы также можете взглянуть на черепаху. Вы можете начать с пешеходов, которые пострадали. Это использует тот факт, что черепахи могут автоматически получать доступ к переменным патча (например, turtles-here) для патча, в котором они находятся:

let hit people with [any? cars-here]
if any? hit
[ ask hit...

или из машин:

let hitters cars with [any? people-here]
if any? hitters
[ ask hitters...
...