как попросить черепашку перейти на ближайший патч с той же категорией? - PullRequest
1 голос
/ 14 января 2020

Я пытаюсь изменить местоположение проблемной молодежи, если полиция посещает ее. В дизайне модели я устанавливаю патчи с разными категориями, проблемная молодежь (черепаха) занимает патч с категорией «школа» или «супермаркет», если полиция (черепаха) посещает этот патч, проблемная молодежь должна изменить свое местоположение на ближайший патч с категорией "школа" или "супермаркет". Код, который я написал, не работает, он показал, что проблема молодежи не двигается, когда полиция посещает, она все еще занимает тот же патч.

Любая помощь будет оценена.

to change-location
  let nearest-police min-one-of police [distance myself]
  if distance nearest-police = 0 [
    let target-patch one-of patches with [category = "school" or category = "supermarket"]
    if  target-patch != one-of patches with [[category = "school"] of myself or [category = "supermarket"] of myself] and distance target-patch > 0 [
      go-to target-patch
    ]
  ]
end

1 Ответ

2 голосов
/ 15 января 2020

Если я правильно истолковал ваш вопрос, переменная патча с именем 'category' принимает значения «school», «supermarket» и, возможно, других опций. Вам нужно ограничить выбор патчами той же категории, что и патч, на котором уже установлена ​​запрашивающая черепаха.

Ваш код one-of patches with [[category = "school"] of myself or [category = "supermarket"] of myself] на самом деле не имеет смысла. Если это бит, который должен выбирать патчи с правильной категорией, просто замените его на: one-of other patches with [category = [category] of myself].

...