Questa domanda ci chiede di creare una tana
nel centro del 'mondo', formata da 9 'patches'.
La creiamo di colore arancio.
Andiamo nel codice.
Per prima cosa aggiungiamo una nuova variabile alla 'turtle'.
La prima riga indica
le proprietà delle turtles, scriviamo 'return-to-nest?' tra le parentesi
Poi creiamo una nuova variabile di 'patch'
quindi patches-own (= proprietà delle patches) [nest?]
Dobbiamo aggiungere due righe
nella procedura di 'setup'.
nel comando 'ask turtles' impostiamo
'return-to-nest?' al valore "false"
Se non lo facciamo, Netlogo
imposta la nuova variabile a "true" di default.
Aggiungiamo una riga
che diventerà una nuova procedura
la chiamiamo 'set-up-nest'
Per aggiungere questa procedura
iniziamo scrivendo 'to set-up-nest'
e aggiungiamo 'ask patches'
che ci pone nel contesto delle patches
impostiamo nest? a 'true' quando una patch ha una distanza < 2 dall'origine.
Per scrivere questo usiamo la
primitiva 'distancexy 0 0'
traparetesi, minore di 2
Se una patch soddisfa questo criterio
poniamo il pcolor color arancio.
Le procedure terminano sempre con 'end'
Vediamo se è corretta
Sembra che abbia dimenticato di chiudere una parentesi,
aggiungiamola, adesso sembra corretto.
Andiamo nell'interfaccia e clicchiamo su 'setup'
Possiamo vedere, è difficile affermare che
ci siano 9 patches qui ma assumiamo
che sia così. C'è una tana arancione
nel centro del 'mondo'.
Poi ci è richiesto di scrivere il codice per
far tornare alla tana le formiche
dopo che hanno mangiato,
prima che vadano di nuovo in cerca di cibo.
Ci sono diversi modi per farlo.
Io faccio così:
prima semplifico un po'
la procedura 'to go'
perciò creo una nuova procedura
che chiamo 'look-for-food'
taglio questa sezione
scrivo una nuova riga per la procedura
e incollo
torniamo alla
procedura 'go', e inseriamo
"ifelse return-to-nest?" è "false" allora
cerchiamo il cibo, "[look-for-food]",
e quindi "ifelse return-to-nest?"
è "true", torniamo alla tana
"[return-to-nest]"
Dobbiamo ancora scrivere
la procedura 'return-to-nest'. Lo faremo in seguito.
Prima di farlo, è una buona idea
controllare il codice
per vedere se abbiamo fatto errori.
Clicco su 'check'
E vediamo che non abbiamo ancora scritto
una procedura 'return-to-nest'
Ho anche dimenticato il segno di uguaglianza
su questa riga, quindi lo inserisco
Scriviamo la procedura 'return-to-nest'
Perciò scriviamo semplicemente
"face patch 0 0" che è l'origine
avanti di 1
che ha la variabile 'return-to-nest' uguale a 'true'
per volgersi verso l'origine e
dirigersi in quella direzione, poi vogliamo
dire di andare in cerca di cibo di uovo
se è nella tana,
quindi se il pcolor è arancio, significa
che è nella tana, e impostiamo
'return-to-nest' a 'false' perché
è già qui.
Fino ad ora non abbiamo nessuna formica
con 'return-to-nest' uguale a 'true'
ovviamente lo dobbiamo fare
dopo che le formiche hanno mangiato
impostando 'return-to-nest' uguale a 'true'.
Controlliamo il codice. Sembra corretto
Ritorniamo all'interfaccia. Clicchiamo su 'setup'
e su 'go'
Ci sono molte formiche
è difficile vedere cosa fanno
Riduciamo il numero di formiche
per vedere cosa fanno.
Rallentiamo un po'
Dovreste vedere
che si comportano come ci aspettiamo
mangiando cibo prima di tornare alla tana
per andare di nuovo in cerca di cibo.
Possiamo ricambiare il colore a rosso,
per renderlo più chiaro.
Ma aspettiamo.