Primi passi con StarLogo
Comandi fondamentali sulla finestra osservatore e sulla finestra tartarughe. Non esiste differenza tra maiuscole e minuscole. Usando la convenzione adottata dagli sviluppatori nell’illustrare i comandi, quelli eseguibili dalle tartarughe sono in verde, quelli eseguibili dall’osservatore sono in marroncino. Se i comandi sono utilizzazbili in entrambe le finestre, li scriveremo invece in azzurro.
CG Clear Graphics CA Clear ALL
KILL 4 ammazza la tarta numero 4
DIE uccide tutte le tarta che scompaiono dallo schermo
Con i comandi KILL e DIE restano le eventuali tracce lasciate dalle tartarughe.
CREATE-AND-DO numero [lista comandi]
HATCH [ lista comandi ] ogni tartaruga ne genera un’altra identica a se stessa che esegue i comandi tra parentesi.
SETC nomecolore oppure numero assegna un colore alla tartaruga e alla sua traccia.
PD mette giù la penna
PU le tartarughe non lasciano più la traccia (stato di default)
ASK-TURTLES [lista comandi]. Una lista di comandi “capiti” dalle tartarughe può essere eseguita dalla finestra dell’osservatore purché preceduta dalla opportuna richiesta.
Non esiste un comando duale per la finestra delle tartarughe.
In basso, in entrambe le finestre si trova un’area dove vengono definite le procedure. Ma non solo. Si dichiarano qui le variabili sia quelle locali ad ogni tartaruga, sia quelle globali.
In effetti ogni tartaruga, identificata dal suo numero che ci viene restituito dal comando
WHO
ha le sue variabili di stato implicite.
XCOR
YCOR
COLOR
HEADING
BREED
SHOWN?
PENDOWN?
Queste variabili sono accedute dal programmatore usandone il nome nelle espressioni. Possono essere cambiate con il comando
SET
Anche i patch hanno le proprie variabili di stato.
XCOR che non può essere alterato (!!!)
YCOR che non può essere alterato (!!!)
PATCH-COLOR che può essere alterato con il comando
SET PC nuovocolore
Si possono definire nuove variabili nell’area delle procedure
TURTLES-OWN [lista variabili]
PATCHES-OWN [lista variabili]
GLOBALS [lista variabili]
Le variabili sono definibili in qualunque area procedure ma non in entrambe!!!
I tre suffissi -AT -TO -TOWARDS sono molto utili nella programmazione.
Le variabili locali alle procedure esistono solo dentro le procedure che le definiscono e sono identificate dalla parola chiave
LET
I parametri delle procedure si comportano come nel LOGO.
Inoltre ci sono le dichiarazioni
BREEDS [lista variabili ]
che servono per identificare le popolazioni che vivono nel mondo virtuale.
Uso della grafica
Alla sua apertura la finestra grafica contiene alcune tartarughe che sono tutte al centro dello schermo.
Scriviamo
die
crt 20
create-and-do 5 [fd 3]
hatch [setc blue fd 1]
setc blue
if ycor < 0 [setc green]
if color = green [pd]
If color = green [ repeat 36 [fd 1 right 10]
cg
Le procedure
Vediamo adesso qualche “gioco” di colori.
to setup
ca
crt 10
ask-turtles [pd]
end
to go
if who < 10
[rt 1
hatch [setc who / 30
repeat 36 [fd 4 rt 10]
die]]
end
Scriviamo poi sulla finestra osservatore
setup
e sulla finestra tartarughe
repeat 100[go]
La varietà di colori è davvero stupefacente..
Osserviamo adesso che la finestra grafica StarLogo contiene in alto a destra uno slider che fissa la grandezza dei patch espressa in pixel. Facciamo in modo che essa sia 1. Il mondo si rimpicciolisce di conseguenza. Ma se col mouse selezioniamo la lavagna, vediamo che possiamo ingrandirla, lasciando che la grandezza dei pixel sia sempre 1.
Rieseguiamo il programma. La figura ottenuta è un po’ diversa. Perché? È interessante anche notare che se ingrandiamo il mondo mentre le tartarughe lavorano, essa è ancora diversa!!
Comunque, fissata una grandezza dei patch e una grandezza dello schermo, decidiamo di rendere il programma di più semplice esecuzione. Usiamo allora la possibilità di aggiungere “bottoni”.
Scegliamo per il primo il nome “inizializza” e gli associamo la proprietà di essere eseguito dall’osservatore e quella di mostrare il suo nome. Per il secondo scegliamo il nome “vai” e gli associamo le propprietà di essere associato alle tartarughe, di eseguire la procedura go e di eseguirla “forever”. Per fermare questa “eterna” procedura basta rifare un clic sul bottone “vai”.