1
Fork 0
mirror of https://github.com/Steffo99/turtle007.git synced 2024-11-24 22:14:19 +00:00
apprevol-2020-turtle007/README.md

81 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2020-05-05 15:30:07 +00:00
# `2-poison`
2020-05-05 15:16:55 +00:00
2020-06-17 16:21:05 +00:00
Questo branch estende il progetto [`2-base`](https://github.com/Steffo99/turtle007/tree/2-base) aggiungendo due pozze di veleno che uccidono le formiche che provano a raccoglierlo.
2020-05-05 15:16:55 +00:00
2020-05-05 15:30:07 +00:00
Le formiche morte rilasciano feromoni "negativi", che invitano le formiche circostanti ad evitare l'area con il veleno.
2020-06-10 09:06:32 +00:00
## Ambiente
2020-06-17 16:21:05 +00:00
### Variabili delle patch
2020-06-10 09:06:32 +00:00
2020-06-17 16:21:05 +00:00
Al modello è stata aggiunta una variabile `poison` posseduta dalle patch, che indica se quella particolare patch contiene veleno.
2020-06-10 09:06:32 +00:00
### Aggiunte sorgenti di veleno
2020-06-17 16:21:05 +00:00
Sono state aggiunte due sorgenti di veleno, entrambe di raggio 4:
2020-06-10 09:06:32 +00:00
2020-06-17 16:21:05 +00:00
- `poison1`, di coordinate (14, -18);
- `poison2`, di coordinate (-14, 14), particolarmente utile perché si trova sul percorso minimo per andare ad una delle sorgenti di cibo.
2020-06-10 09:06:32 +00:00
### Aggiunta funzione: t-subtract-pheromone
Questa funzione permette di sottrarre una elevata quantità di feromone dall'ambiente, fino a renderlo negativo: per una formica, è l'eqivalente del rilascio di "feromoni di allarme" volti ad allertare le compagne della presenza di veleno.
2020-06-17 16:21:05 +00:00
```
to t-subtract-pheromone
2020-06-10 09:06:32 +00:00
ask patch-here [
set pheromone pheromone - 240
]
end
```
### Modifica funzione: t-paint-patch
2020-06-17 16:21:05 +00:00
```
ifelse pheromone >= 0 [
set pcolor scale-color pheromone-color pheromone 0 pheromone-max
][
set pcolor scale-color poison-color pheromone 0 pheromone-min
]
2020-06-10 09:06:32 +00:00
```
### Comportamento delle formiche
Il comportamento delle formiche è stato cambiato nei seguenti modi:
#### Aggiunta funzione: `t-is-over-poison`
2020-06-17 16:21:05 +00:00
```
to-report t-is-over-poison
2020-06-10 09:06:32 +00:00
report ([poison] of patch-here = 1)
end
```
#### Aggiunta funzione: `t-try-pick up poison`
2020-06-17 16:21:05 +00:00
```
to t-try-pick-up-poison
2020-06-10 09:06:32 +00:00
if carrying-food = 0 and t-is-over-poison [
t-pick-up-poison
]
end
```
#### Aggiunta funzione: `t-pick-up-poison`
2020-06-17 16:21:05 +00:00
```
to t-pick-up-poison
2020-06-10 09:06:32 +00:00
ask patch-here [
set poison 0
]
t-subtract-pheromone
die
rt 180
end
```
## Dinamica del sistema
Come nella precedente versione, le formiche vagano alla ricerca di cibo. Se trovano del veleno, lo raccolgono credendolo cibo, e per questo muoiono. Alla loro morte rilasciano una grande quantità di feromoni negativi, in modo da tentare di evitare che le compagne facciano la stessa fine. Per un po' i ferormoni negativi tengono lontane le formiche, ma con il tempo suddetto feromone evapora, e una nuova formica torna a cadere nella trappola.
2020-06-17 16:21:05 +00:00
Tale trappola è molto efficace se messa sul cammino per una fonte di cibo (come è accaduto con `poison2`): le formiche che trasportano cibo al nido rilasciano feromoni in ogni momento, quindi anche mentre passano sopra al veleno, e questo contribuisce a mitigare l'effetto degli ormoni negativi e a far dirigere ancora più formiche verso la trappola velenosa.