Черепашки NetLogo

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

Персональные инструменты
Инструменты
Акция час кода 2018

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