Sadık Ay

Starting to StarLogo

May 16, 2015 | 6 Minute Read

1. Introduction

StarLogo, karınca kolonileri, kuş sürüleri gibi merkezi sistemi olmayan ortamların programlanmasında kullanılan bir simulasyon dilidir.

Dağıtık (merkezi olmayan) sistemlerde, herhangi bir merkezi kontrol olmadan düzenli desenler ortaya çıkabilmektedir. Organizasyonlar ve teknolojik kurumlar tarafından, dağıtık sistemlerin tercih edilmesi günümüzde giderek artmaktadır. StarLogo Mitchel Resnick, Eric Klopfer ve diğer MIT Media Lab. üyeleri tarafınfan öğrencilere yönelik dağıtık sistemleri anlamaları ve yeni geliştirme yöntemleri bulmaları için tasarlanmıştır.

StarLogo, Logo programlama dilinin bir eklentisidir. Logo dilinin kendi versiyonlarında, bilgisayar ekranından "turtle" komutu yardımıyla çizimler ve animasyonlar oluşturulabilmektedir. StarLogo kullanıcının binlerce "turtle" (kaplumbağa) grafiğini paralel bir şekilde kontrol etmesine olanak sağlamaktadır.

StarLogonun gelişmiş bir modeli olan StarLogo TNG 2008 yılında version 1.0 ile sürüldü. C ve Java ile yazılan TNG OpenGL grafiklerini kullanarak 3D boyutlu modellemeyi desteklemektedir. StarLogo'nun son versiyonu ise StarLogo Nova adıyla 2014 yazında release edildi. Nova browser simulasyon imkanı sağlamaktadır.

Bu dökümanda StarLogo'nun Java versiyonuna değinerek, temel tanımları ele alacağız.


2. Cast of Characters

StarLogo üç ana karakter tipi içermektedir.

Turtles: StarLogo dünyasını oluşturan ana karakterlerin başında "turtles" lar gelmektedir. "turtle" nesnesini diğer nesneleri ifade etmek için de kullanabiliriz. Örneğin: Kolonideki bir karınca, trafik sistemindeki bir araba ve bağışıklık sistemindeki bir antikoru "turtle" objesi temsil etmektedir.
Her bir turtle nin bir pozisyonu, başlığı, rengi ve çizimi bulunmaktadır.

Patches: "turtle" lerin yaşadıkları yerler olarak tanımlanabilir. Patches 'lar turtle lar gibi StarLogo komutları ile çalıştırılabilir, 'turtle' ve diğer patches'lara etki ederler. Her 'patche' kareli bir grafik alanında bir kareye karşılık gelecek şekilde düzenlenmiştir.

Observer (Gözlemci):
Observer ile kuş bakışı perspektifinden 'turtle' ve 'patch' ler gözlemlenebilir. Observer yeni 'turtle' lar oluşturabilir veya mevcut turtlelerin aktivitelerini ve patchlerini izleyebilir.


3. StarLogo Interface

StarLogo programının arayüzü birden fazla ana pencere barındırmaktadır:
StarLogo window:

FIGURE1: Starlogo Window

Control Center window:Programın çalıştıracağı komutların girişi buradan yapılır.

FIGURE 2: The Turtle Command Center
FIGURE 3: The Observer Command Center

Diğer Pencereler: Control Center Window 'un üst tarafındaki menü bar bir kaç windowa daha erişebilmemizi sağlamaktadır. Bilgi penceresi programla ilgili açıklamalar yazmamızı sağlar.


4. Creating Your Own Project

Hadi bir örnek üzerinde kendi projemizi oluşturmaya çalışalım.

Control Center -> File -> New. Observer Command Center sekmesi üzerinde:

crt 280

StarLogo 280 turtle oluşturur. (crt create-turtles code base). Default olarak turtlelar (0, 0) konumunda, ekranın orta kısmında başlatılırlar.

Sonra, aşağıdaki komutu çalıştıralım:
fd 15

Her turtle 15 adım ötelenmektedir. Oluşturulan her turtle nin heading kısmı diğerleri ile arasında aralık barındırdığından, ötelenme yönleri farklı olmaktadır. Bu durumda (0, 0) noktası etrafınfa yarıçapı 15 olan bir çember oluştururlar.

seth 0 fd 30

Bu komut ile her turtle'ın heading kısmı 0 olarak set edilir. Daha sonra 30 birim ötelenir

pd fd 50


Her turtle ın geçtiği yer üzeinden "pen down" (pd), komutu çalıştırılır ve her turtle kendi rengini çizer.

repeat 36 [fd 2 rt 10]
Bu komut ile her turtle bir çember çizer, tekrarlı bir şekilde iki birim ötelenir ve sağa doğru 10 derecelik bir dönüş gerçekleştirir.

Şimdi de Observer command center üzerinde aşağıdaki komutu çalıştıralım:
cg


Bu komut, ekrandaki çizimi temizler ve bütün patch' leri siyaha çevirir. (Bu durum turtle'ları etkilemez).

StarLogo buton oluşturucu ile bize daha fazla kolaylıklar sağlamaktadır.
fd 1 :komutunu buton oluşturucu ile çok daha efektif bir şekilde kullanbiliriz.

Şimdi de rt 5 komutu için bir tane forever-button oluşturarak fd 1 butonu ile beraber kullanalım.

cg komutunu ekranı temizlemek için kullandığımızdan sık kullanacağımız bir komut olur ve "Observer" seçeneğini seçerek forever-button olmayan bir buton oluşturalım.

StarLogo'da sık kullandığımız komutları bir prosedüre çevirerek sürekli aynı komutu bir daha yazmaktan kurtulmuş oluruz. 'Observer Procedures window' üzerinde aşağıdaki komutu yazarak bir 'setup' procedürü oluşturalım:
to setup
ca crt 280
ask-turtles [fd 15 seth 0 pd]
end

Şimdi de bu yazdığımız prosedüre göre bir buton oluşturup işimizi daha da kolaylaştıralım.

Bir turtle forever-button oluşturarak turtle'ların rengini oluşturabiliriz.
setc color + 1