Черепашки NetLogo
Строка 10: | Строка 10: | ||
Теперь создадим первую процедуру, которая будет очищать все имеющиеся объекты и значения. Далее следует программа с комментариями. Комментарии задаются двумя символами ;; | Теперь создадим первую процедуру, которая будет очищать все имеющиеся объекты и значения. Далее следует программа с комментариями. Комментарии задаются двумя символами ;; | ||
− | + | to setup | |
− | + | ||
+ | ca ;; очищаем значения | ||
;; каждая черепашка располагается в случайной точке экрана | ;; каждая черепашка располагается в случайной точке экрана | ||
− | + | ||
− | setxy random-xcor random-ycor | + | crt 50 [ ;; создаем 50 черепах и разбрасываем их по экрану |
− | set color one-of remove gray remove green base-colors | + | |
− | set group false | + | setxy random-xcor random-ycor |
− | + | ||
+ | set color one-of remove gray remove green base-colors | ||
+ | |||
+ | set group false] | ||
;; черепахи рождаются по порядку и поворачиватся последовательно. Когда мы им потом даем команду разойтись, они образуют круг | ;; черепахи рождаются по порядку и поворачиватся последовательно. Когда мы им потом даем команду разойтись, они образуют круг | ||
;; cro number_of_turtles [fd max-pxcor - 2] | ;; cro number_of_turtles [fd max-pxcor - 2] | ||
;; Этого же результата можно достичь, если мы используем команду layout-circle | ;; Этого же результата можно достичь, если мы используем команду layout-circle | ||
− | + | end | |
− | + | ||
− | + | ||
− | + | to circle | |
− | layout-circle turtles max-pxcor - 2 | + | * layout-circle turtles max-pxcor - 2 |
− | + | end | |
;; мы умеем создавать черепашек и расставлять их по экрану. | ;; мы умеем создавать черепашек и расставлять их по экрану. | ||
Строка 33: | Строка 35: | ||
− | + | to collect_color | |
;; Первая версия - черепашки объединяются, но делают много лишних движений | ;; Первая версия - черепашки объединяются, но делают много лишних движений | ||
;;ask other turtles with [color = [color] of myself] | ;;ask other turtles with [color = [color] of myself] | ||
Строка 44: | Строка 46: | ||
;; черепашка устанавливает свою принадлежность к группе в true - и теперь ее не будут вызывать | ;; черепашка устанавливает свою принадлежность к группе в true - и теперь ее не будут вызывать | ||
* set group true | * set group true | ||
− | * create-link-to myself | + | * create-link-to myself]] |
− | + | end | |
− | + | ||
− | + | ||
=== Команды к черепашкам === | === Команды к черепашкам === |
Версия 14:08, 19 марта 2009
Научимся создавать, расставлять и группировать черепах. Создадим новый проект. У черепашек Netlogo есть свойства - номер, цвет, координаты и т.д. Кроме того, мы можем задавать черепашкам новые свойства - turtles-own. Свойства всегда задаются в начале программы. Например, зададим для черепашек свойство group.
turtles-own [group]
Вообще внутри turtles-own [] можно перечислить множество свойств
Теперь создадим первую процедуру, которая будет очищать все имеющиеся объекты и значения. Далее следует программа с комментариями. Комментарии задаются двумя символами ;;
to setup
ca ;; очищаем значения
;; каждая черепашка располагается в случайной точке экрана
crt 50 [ ;; создаем 50 черепах и разбрасываем их по экрану
setxy random-xcor random-ycor
set color one-of remove gray remove green base-colors
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]
;; во второй версии задаем черепашкам свойство принадлежности к группе и в начале устанавливаем значение этого свойства в 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]]
- Черепаха говорит всем черепаха одинакового с ней цвета повернуться к ней лицом и сделать прыжок в ее сторону.
- Например, 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]