Черепашки NetLogo

Материал из Letopisi.Ru — «Время вернуться домой»
Перейти к: навигация, поиск

Научимся создавать, расставлять и группировать черепах. Листинг программы - Черепашки NetLogo/Test-turtle.nlogo

Создадим новый проект. У черепашек Netlogo есть свойства - номер, цвет, координаты и т.д. Кроме того, мы можем задавать черепашкам новые свойства - turtles-own. Свойства всегда задаются в начале программы. Например, зададим для черепашек свойство group.

turtles-own [group]

Вообще внутри turtles-own [] можно перечислить множество свойств

Теперь создадим первую процедуру, которая будет очищать все имеющиеся объекты и значения. Далее следует программа с комментариями. Комментарии задаются двумя символами ;;

to setup

  • ca ;; очищаем значения
  •  ;; каждая черепашка располагается в случайной точке экрана
  • crt 50 [  ;; создаем 50 черепах и разбрасываем их по экрану
  • setxy random-xcor random-ycor
set group false]
 черепахи рождаются по порядку и поворачиватся последовательно. Когда мы им потом даем команду разойтись, они образуют круг
 cro  number_of_turtles [fd max-pxcor - 2]
 Этого же результата можно достичь, если мы используем команду layout-circle
end 

to circle

  • layout-circle turtles max-pxcor - 2

end

Мы умеем создавать черепашек и расставлять их по экрану. Теперь попробуем собрать черепашек одинакового цвета


to collect_color

  •  ;; Первая версия - черепашки объединяются, но делают много лишних движений
  •  ;; ask other turtles with [color = [color] of myself] [face myself jump (distance myself) - 1]
;; во второй версии задаем черепашкам свойство принадлежности к группе и в начале устанавливаем значение этого свойства в false
  • if group = false [ask other turtles with [(color = [color] of myself) and (group = false)]
[
;; черепашка прыгает в сторону вызывающего агента
  • face myself jump (distance myself) - 1
;; черепашка устанавливает свою принадлежность к группе в true - и теперь ее не будут вызывать
  • set group true create-link-to myself]]

end

Команды к черепашкам

  • back (bk)
  • <breeds>-at команда к породе
    • ask cats-at 1 1
  • <breeds>-here
    • ask turtle 1 [show count cats-here] - посчитать черепашек породы кот
  • <breeds>-on
  • can-move? dist - могу ли двигаться на указанное расстояние, не занято ли это место
  • clear-turtles (ct) - уничтожить всех черепах
  • create-<breeds>
  • create-ordered-<breeds>
  • create-ordered-turtles (cro)
  • create-turtles (crt)
  • die умереть
    • Например, ask turtles with [color = red] [die] - все красные черепахи умерли
  • distance (agent) - расстояние до агента
    • ask turtle 1 [show distance turtle 0] - возвращает расстояние
    • ask turtle 1 [ show max-one-of turtles [distance myself] ] - возвращает имя агента
  • distancexy
  • downhill
  • downhill4
  • dx
  • dy
  • face повернуться в сторону агента
    • Например, ask turtle 0 [ask other turtles with [color = [color] of myself] [face myself jump 1]]
      • Черепаха говорит всем черепаха одинакового с ней цвета повернуться к ней лицом и сделать прыжок в ее сторону.
  • facexy повернуться в сторону точки
    • facexy 50 50
  • forward (fd)
  • hatch
  • hatch-<breeds>
  • hide-turtle (ht)
  • home
  • inspect
  • is-<breed>?
  • is-turtle?
  • jump
  • left (lt)
  • move-to
  • myself
  • nobody
  • no-turtles
  • of
  • other
  • patch-ahead
  • patch-at
  • patch-at-heading-and-distance
  • patch-here
  • patch-left-and-ahead
  • patch-right-and-ahead
  • pen-down (pd)
  • pen-erase (pe)
  • pen-up (pu)
  • random-xcor
  • random-ycor
  • right (rt)
  • self
  • set-default-shape
  • __set-line-thickness
  • setxy
  • shapes
  • show-turtle (st)
  • sprout
  • sprout-<breeds>
  • stamp
  • stamp-erase
  • subject
  • subtract-headings
  • tie
  • towards
  • towardsxy
  • turtle
  • turtle-set
  • turtles
  • turtles-at
  • turtles-here
  • turtles-on
  • turtles-own
  • untie
  • uphill
  • uphill4
  • who - ID агента - черепахи или связи
    • ask turtles [set label [who] of self]
    • ask patches [set label [who] of self]
Персональные инструменты
Инструменты
Акция час кода 2018

организаторы проекта