Черепашки NetLogo

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
(Новая: Научимся создавать, расставлять и группировать черепах. Создадим новый проект. У черепашек Netlogo есть ...)
 
Строка 29: Строка 29:
 
  end
 
  end
  
;; мы умеем создавать черепашек и расставлять их по экрану.
+
;; мы умеем создавать черепашек и расставлять их по экрану.
;; Теперь попробуем собрать черепашек одинакового цвета
+
;; Теперь попробуем собрать черепашек одинакового цвета
  
  
to collect_color
+
to collect_color
;; Первая версия - черепашки объединяются, но делают много лишних движений  
+
;; Первая версия - черепашки объединяются, но делают много лишних движений  
;;ask other turtles with [color = [color] of myself]
+
;;ask other turtles with [color = [color] of myself]
  
;; во второй версии задаем черепашкам свойство принадлежности к группе и в начале устанавливаем значение этого свойства в false
+
;; во второй версии задаем черепашкам свойство принадлежности к группе и в начале устанавливаем значение этого свойства в false
if group = false [ask other turtles with [(color = [color] of myself) and (group = false)]
+
if group = false [ask other turtles with [(color = [color] of myself) and (group = false)]
[
+
[
;; черепашка прыгает в сторону вызывающего агента
+
;; черепашка прыгает в сторону вызывающего агента
face myself jump (distance myself) - 1
+
face myself jump (distance myself) - 1
;; черепашка устанавливает свою принадлежность к группе в true - и теперь ее не будут вызывать
+
;; черепашка устанавливает свою принадлежность к группе в true - и теперь ее не будут вызывать
set group true
+
set group true
create-link-to myself
+
create-link-to myself
]
+
]
]
+
]
end
+
end
 +
 
 +
===  Команды к черепашкам ===
 
* back (bk)
 
* back (bk)
 
* <breeds>-at
 
* <breeds>-at

Версия 13:28, 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
  • <breeds>-here
  • <breeds>-on
  • can-move?
  • clear-turtles (ct)
  • create-<breeds>
  • create-ordered-<breeds>
  • create-ordered-turtles (cro)
  • create-turtles (crt)
  • die
  • distance
  • distancexy
  • downhill
  • downhill4
  • dx
  • dy
  • face
  • facexy
  • 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
Персональные инструменты
Инструменты