Netlo go операторы if и while, определяющие цвет патча true - PullRequest
1 голос
/ 10 февраля 2020

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

while [patch-at x ytemp with [pcolor = 44]] [set ytemp ytemp - 1] ask patch-at x ytemp [set pcolor 44]

Таким образом, в основном он работает по линии патчей вертикально в этот экземпляр, и когда он находит этот патч, который не имеет цвет 44 (темно-желтый), а затем изменяет этот патч на 44.

1 Ответ

1 голос
/ 10 февраля 2020

Условие, которое вы хотите указать в операторе while, равно while [ [pcolor] of patch x ytemp = 44 ]. Но вы также должны быть уверены, что у вас не будет проблем, если все пятна в столбце x будут окрашены 44. Если мир обернут, вы (я думаю) попадете в бесконечное число l oop. Если это не так, вы получите сообщение об ошибке при тестировании патча в нижней части вашего мира. Возможно, следующее может сделать то, что вы хотите более безопасно?

let candidates patches with [pxcor = x and pcolor != 44]
  if any? candidates [
    ask max-one-of candidates [pycor] [set pcolor 44]
  ]

Он находит все патчи в столбце x, которые не окрашены 44, и, если они есть, выбирает тот, который ближе всего к вершине мир, чтобы покрасить, это то, что сделал бы ваш while l oop.

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

...