Черепашки NetLogo

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
(Урок 1. Создаем и группируем черепах)
(Группируем черепах по цветам)
 
(не показаны 4 промежуточные версии 1 участника)
Строка 34: Строка 34:
 
'''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
  

Текущая версия на 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

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