Acesta intrebare ne cere sa cream un cuib in centrul lumii
Va avea in jur de noua puncte/petice si-l vom colora in portocaliu
Mergeti in Code si adaugati o noua variabila "turtles"
In prima linie ce contine turtles-on, vom adauga intre paranteze "return-to-nest"
Semnul intrebarii la sfarsit
Apoi vom crea un nou patch cuib
Asadar, tastati "patches-on" deschideti paranteza si apoi "nest?" si inchideti paranteza
Acum trebuie sa adaugam cateva linii procedurii "set up"
In comanda "ask turtle" vom introduce "set return-to-nest?" ca fiind fals
Daca nu facem asta NetLogo va seta automat orice variabila noua ca adevarata/true
Acum vom adauga o noua linie ce va deveni o noua procedura si o vom denumi "set up nest"
Pentru a adauga aceasta procedura incepeti prin a adauga "to"
si continuati cu "set-up-nest"
si apoi "ask patches" ce ne pune in contextul patchurilor
Setam variabila "nest?" ca adevarata ori de cate ori un petic este la o distanta de 2 fata de origine
Iar pentru asta vom scrie intre paranteze "distancexy 0 0" mai mic dcat 2
Si urmatoarea linie, daca un petic indeplineste acel criteriu/"if nest? true"
Atunci seteaza "pcolor" sa fie portocaliu
Inchideti paranteza
Si intotdeauna incheiati o procedura cu "end"
Sa vedem daca functioneaza
Aceasta paranteza nu a fost inchisa. Am uitat o paranteza. O s-o adaug
Sa vedem daca acum merge. Pare in regula
Mergem in interfata, apasati butonul "set up" si puteti vedea ca este in centru
E greu de spus daca sunt intr-adevar 9 petice dar presupun ca sunt
Acum avem un cuib portocaliu in centrul lumii
Urmatorul lucru care ni se cere este sa scriem un cod care va face ca furnicile sa se intoarca la cuib
dupa ce mananca si inainte de a porni din nou
Sunt multe moduri in care se poate face asta
Eu am optat pentru urmatorul
Mai intai as dori sa simplific putin procedura "to go"
Asadar, voi crea o noua procedura
si o voi denumi cauta mancare/"look for food"
Voi copia aceasta sectiune cu cut, voi scrie o noua linie de procedura dupa care voi adauga sectiunea taiata
Si acum ne vom intoarce la procedura "to go"
si vom introduce "ifelse return-to-nest?" este fals
atunci cauta mancare/"look-for-food"
Si bineinteles, daca "ifelse return-to-nest?" este adevarat
atunci se vor intoarce la cuib.
Inca nu am am scris procedura "return-to-nest"
Asa ca o vom face acum
Totusi, inainte de a face asta, ar fi o idee buna sa verificam codul de eventuale greseli
Asa ca apasam butonul "check"
Si ne anunta ca nu avem inca o procedura "return-to-nest"
Deasemeni, observ ca am uitat un semn de egal in aceasta linie asa ca-l voi introduce acum
Si voi incepe si scrierea procedurii "return-to-nest"
Pentru asta vom scrie "face patch 0 0" care reprezinta peticul de origine
Mergi inainte 1/"fd 1"
Asta va face ca orice furnica care are variabila "return-to-nest?" adevarata sa se intoarca catre peticul de origine
si sa se deplaseze un petic in acea directie
Apoi vrem sa le facem sa porneasca din nou daca sunt la cuib
Deci, daca culoarea peticului va fi portocalie, adica furnica s-a intors la cuib
atunci vom seta "return-to-nest?" ca fals pentru ca este deja acolo
Inchidem paranteza
Pana acum nu avem nici o furnica care s-a intors la cuib/"return-to-nest?" ca adevarata
Asa ca va trebui s-o facem
Dupa ce au mancat mancarea vom seta "return-to-nest?" ca adevarat
Vom verifica codul
Pare in regula
Mergem inapoi in interfata, apasam "set up" si "go"
Sunt destul de multe furnici si e greu sa vedem ce fac fiecare
Asa ca vom reduce numarul de furnici
Si vom incerca din nou
O sa-l incetinim putin
O sa observati ca furnicile se comporta asa cum ar trebui
Mananca si se intorc la cuib inainte de a porni din nou
Putem schimba culoarea inapoi la rosu pentru a face totul mai evident dar o vom lasa pentru mai tarziu