Леви, в настройке , вам нужно дать каждой черепахе переменную, которая указывает, заморожена ли черепаха или нет. Вы должны решить, какой цвет патчей вы хотите обозначить как «опасность!»
На каждом шаге go , если черепаха не замерзла, она может сделать шаг, а затем проверить цветпатч, чтобы увидеть, если он будет заморожен сейчас.
Когда каждая черепаха замерзнет, остановитесь.
Приведенный ниже код выполнит это.
globals [ danger-color ]
turtles-own [
frozen? ;; each turtle needs its own true-false switch for whether it's frozen.
;; this is a true/false variable so the name ends with "?"
]
to setup
clear-all
;; pick a color you like for dangerous areas. I picked red.
set danger-color red
;; set the bottom half of the viewing area to the danger color
no-display
ask patches with [pycor < 0] [set pcolor danger-color ]
display
;; create 2 big yellow turtles that are not frozen and move them up
create-turtles 2 [
set color yellow
set size 3
setxy random-pxcor 10 ;; put them somewhere on top half of the screen
set frozen? FALSE ;; initially all turtles are not frozen
]
reset-ticks
end
to go
;; see if there is any point in continuing to run
if not any? turtles with [frozen? = FALSE] [stop ]
ask turtles with [ frozen? = FALSE ]
[
set heading random 360
forward 1
;; and check to see if maybe NOW we should be frozen
if pcolor = danger-color
[
set frozen? TRUE
set color blue
]
]
tick
end
Обратите внимание, что я мог бы просто поставить "красный" вместо определенияОпасный цвет, который может сэкономить несколько нажатий клавиш, но также затруднит обновление и понимание кода.
, если pcolor = danger-color прояснит, для чего вы тестируете,где , если pcolor = red не так очевидно. Поверьте мне, через месяц, когда вы вернетесь к коду, вы оцените тот факт, что вы это сделали.
Использование такой переменной также означает, что если вы передумаете над тем, какой цвет должен представлять опасностьвам нужно всего лишь изменить это место в коде, и вы знаете, где это находится. «Красное» жестко запрограммированное в вашей программе несколько мест затрудняет поиск их для обновления и почти гарантирует, что вы пропустите один из них.
Оставьте комментарий, если это неясно, и я попытаюсь объяснитьлучше!
Веселитесь вместе с NetLogo! Спасибо за поиск ответа здесь!