Sursa: Net Logo \Help\Net Logo User Manual \Tutorial#3 Procedures, https://ccl.northwestern.edu/netlogo/docs/
În Net Logo, o procedură combină o serie de comenzi ale limbajului într-o nouă comandă gata de execuţie.
De exemplu o nouă procedură poate face ca un agent de tip “turtle” :
CREAREA UNOR BUTOANE ŞI PROCEDURI DE TIPUL “SETUP”, “GO”
o Din interfaţa Net Logo se alege adăugarea unui nou buton.
o Cu un click în zona albă a ecranului se alege locaţia butonului.
o In «popup» se completează un minim de informaţii (numele butonului creat) şi se pot schimba alte opţiuni faţă de cele «default ».
o Butonul creat rămâne roşu până când utilizatorul va asocia o procedură respectivului buton.
o Se navighează în al 3-lea tab al interfeţei (tabul “Code”)
o Codul procedurii “Setup” poate arăta astfel:
to setup
clear- all
create-turtles 100 [setxy random-xcor random - ycor]
reset- ticks
end
o În exemplul prezentat, se crează 100 de agenţi de tip “turtle”, având o poziţie întâmplătoare atât pe axa orizontală cât şi pe cea verticală.
o O procedură întotdeauna începe cu “to” şi se termină cu “end”.
o Pentru executarea procedurii create şi vizualizarea rezultatelor, este suficientă navigarea în fereastra “Interface” şi apăsarea butonului creat anterior (“Setup”).
o Butonul “Go” se crează similar cu butonul “Setup”, dar în exemplul prezentat se vor schimba unele opţiuni “default”
§ Se va alege opţiunea “Forever”
§ Se va alege « Disable until ticks start » întrucât previne utilizarea butonului înainte de finalizarea procedurii “Setup”
o Se navighează în al 3-lea tab al interfeţei (tabul “Code”)
o Codul procedurii “Go” poate arăta astfel:
to go
move-turtles
tick
end
to move-turtles
ask turtles [
right random 360
forward 1
]
end
o În exemplul prezentat, se apelează o nouă procedură, «move-turtles » în interiorul procedurii « Go »
o În exemplul prezentat, cei 100 de agenţi de tip “turtle” creaţi anterior se deplasează aletoriu, după un unghi < 3600, distanţa parcursă fiind tot timpul de un pas
CREAREA INTERACŢIUNILOR ÎNTRE AGENŢI. DEFINIREA UNOR COMPORTAMENTE
Agenţii se hrănesc din mediu
o Definim la începutul codului sursă o variabilă asociată agenţilor de tip « turtle” pentru a ţine evidenţa nivelului de energie pe care fiecare agent o deţine la un moment de timp :«turtles-own [energy] »
o Adăugăm procedura “eat-grass” în cadrul procedurii “go”
o Agenţii de tip «turtle » se vor hrăni din mediu, câştigând astfel energie. Aceştia vor mânca agenţii de tip «patches». In exemplul prezentat câştigă 10 unităţi de energie la fiecare « patch » consumat
to go
move-turtles
eat-grass
tick
end
to eat-turtles
ask turtles [
if pcolor=green [
set pcolor black
set energy energy + 10
]
]
end
Provocarea 4 : Realizaţi modificările necesare pentru a vizualiza rezultatle modelului pas cu pas.
to move-turtles
ask turtles [
right random 360
forward 1
set energy energy - 1
]
end
to check-death
ask turtles [
if energy <= 0 [ die ]
]
end
CREAREA UNOR MONITORI PENTRU MONITORIZAREA EVOLUŢIEI AGENŢILOR
· monitorizarea numărului de agenţi de tip « turtle »
o Din interfaţă se alege “Add Monitor”, iar printr-un click se stabileşte locaţia graficului pe ecran
o Adăugăm sintaxa «count turtles »
Provocarea 5 :
Adăugaţi un buton pentru monitorizarea numărului de agenţi de tip
« patches » care au culoarea verde
CREAREA UNOR GRAFICE PENTRU MONITORIZAREA EVOLUŢIEI AGENŢILOR
o Din interfaţă se alege “Add Plot”, iar printr-un click se stabileşte locaţia graficului pe ecran.
o Exemplu: pentru monitorizarea în acelaşi grafic a numărului de agenţi de tip « turtle » şi a numărului de agenţi de tip « patches » care au culoarea verde se utilizează sintaxele «plot count turtles » şi respectiv « plot count patches with [pcolor = green]»