Черепашки NetLogo
(→Группируем черепах по цветам) |
|||
(не показаны 15 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
− | Научимся создавать, расставлять и группировать черепах. | + | === Урок 1. Создаем и группируем черепах === |
+ | Научимся создавать, расставлять и группировать черепах. Листинг программы - [[Черепашки NetLogo/Test-turtle.nlogo]] | ||
+ | |||
Создадим новый проект. У черепашек Netlogo есть свойства - номер, цвет, координаты и т.д. | Создадим новый проект. У черепашек Netlogo есть свойства - номер, цвет, координаты и т.д. | ||
Кроме того, мы можем задавать черепашкам новые свойства - turtles-own. Свойства всегда задаются в начале программы. | Кроме того, мы можем задавать черепашкам новые свойства - turtles-own. Свойства всегда задаются в начале программы. | ||
− | Например, зададим для черепашек свойство group. | + | Например, зададим для черепашек свойство group. Свойство будет иметь 2 значения - ложь или истина. Принадлежит черепашка к группе или не принадлежит. |
turtles-own [group] | turtles-own [group] | ||
Строка 10: | Строка 12: | ||
Теперь создадим первую процедуру, которая будет очищать все имеющиеся объекты и значения. Далее следует программа с комментариями. Комментарии задаются двумя символами ;; | Теперь создадим первую процедуру, которая будет очищать все имеющиеся объекты и значения. Далее следует программа с комментариями. Комментарии задаются двумя символами ;; | ||
+ | ==== Создаем новых черепах ==== | ||
to setup | to setup | ||
− | + | * ca - очищаем значения | |
− | ca | + | * каждая черепашка располагается в случайной точке экрана |
− | + | * crt 50 [ ;; создаем 50 черепах и разбрасываем их по экрану | |
− | + | * setxy random-xcor random-ycor | |
− | crt 50 [ ;; создаем 50 черепах и разбрасываем их по экрану | + | * set group false |
− | + | * ] | |
− | setxy random-xcor random-ycor | + | * черепахи рождаются по порядку и поворачиватся последовательно. Когда мы им потом даем команду разойтись, они образуют круг |
− | + | * cro number_of_turtles [fd max-pxcor - 2] | |
− | set | + | * Этого же результата можно достичь, если мы используем команду layout-circle |
− | + | * end | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | end | + | |
to circle | to circle | ||
Строка 31: | Строка 29: | ||
end | end | ||
− | + | Мы умеем создавать черепашек и расставлять их по экрану. Теперь попробуем собрать черепашек одинакового цвета | |
− | + | ||
+ | ==== Группируем черепах по цветам ==== | ||
+ | '''to collect_color''' | ||
+ | * Первая версия - черепашки объединяются, но делают много лишних движений | ||
+ | <nowiki> ask other turtles with [color = [color] of myself] [face myself jump (distance myself) - 1] </nowiki> | ||
− | + | во второй версии задаем черепашкам свойство принадлежности к группе и в начале устанавливаем значение этого свойства в false | |
− | + | * <nowiki>if group = false [ask other turtles with [(color = [color] of myself) and (group = false)] </nowiki> | |
− | + | <nowiki> [ </nowiki> | |
− | + | черепашка прыгает в сторону вызывающего агента | |
− | + | ||
− | * 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 - и теперь ее не будут вызывать | |
− | * set group true | + | * <nowiki> set group true create-link-to myself]] </nowiki> |
− | + | ||
end | end | ||
− | + | ||
− | + | На странице использованы [[Команды к черепахам NetLogo]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
[[Категория:NetLogo]] | [[Категория:NetLogo]] |
Текущая версия на 15:29, 7 мая 2009
[править] Урок 1. Создаем и группируем черепах
Научимся создавать, расставлять и группировать черепах. Листинг программы - Черепашки NetLogo/Test-turtle.nlogo
Создадим новый проект. У черепашек Netlogo есть свойства - номер, цвет, координаты и т.д. Кроме того, мы можем задавать черепашкам новые свойства - turtles-own. Свойства всегда задаются в начале программы. Например, зададим для черепашек свойство group. Свойство будет иметь 2 значения - ложь или истина. Принадлежит черепашка к группе или не принадлежит.
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
На странице использованы Команды к черепахам NetLogo