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

120 lines
3.5 KiB
Markdown
Raw Normal View History

2020-05-05 15:39:07 +00:00
# `2-ant-apocalypse`
2020-05-05 15:16:55 +00:00
2020-06-17 16:27:13 +00:00
Questo branch estende il progetto [`2-base`](https://github.com/Steffo99/turtle007/tree/2-base) tenendo traccia del cibo accumulato dalle formiche nel loro formicaio e facendole morire lentamente nel caso che esso finisca.
Inoltre, fa ricomparire il cibo nell'ambiente a intervalli irregolari di tempo.
2020-06-17 16:16:10 +00:00
## Aggiunte / Modifiche
2020-06-17 16:27:13 +00:00
### Aggiunto: `t-set-hunger`
2020-06-17 16:16:10 +00:00
```diff
2020-06-17 16:27:13 +00:00
+to t-set-hunger
+ if random-float 100 < hunger-increase-pct[
+ set hunger hunger + hunger-per-tick
+ ]
+end
2020-06-17 16:16:10 +00:00
```
2020-06-17 16:27:13 +00:00
2020-06-17 16:16:10 +00:00
Questa funzione aumenta la fame della formica casualmente.
2020-06-17 16:27:13 +00:00
### Aggiunto: `t-try-eat-food`
2020-06-17 16:16:10 +00:00
```diff
2020-06-17 16:27:13 +00:00
+to t-try-eat-food
+ if carrying-food = 1[
+ set hunger 0
+ set carrying-food 0
+ ]
+ if t-is-over-nest and food-in-nest > 0[
+ set hunger 0
+ set food-in-nest food-in-nest - 1]
+end
2020-06-17 16:16:10 +00:00
```
2020-06-17 16:27:13 +00:00
Questa funzione permette alla formica di provare a consumare cibo.
2020-06-17 16:16:10 +00:00
Se si trova sul nido, riduce di 1 la scorta del magazzino, se ne sta trasportando mangia quello.
2020-06-17 16:27:13 +00:00
### Modificato: `t-work`
2020-06-17 16:16:10 +00:00
```diff
2020-06-17 16:27:13 +00:00
to t-work
+ ifelse carrying-food = 1 or (hunger >= hunger-threshold and enable-hunger)[
+ t-rotate-nest
+ if carrying-food = 1[
+ t-add-pheromone]
+ ][
+ t-rotate-pheromone
+ ]
2020-06-17 16:16:10 +00:00
left random random-angle
right random random-angle
fd 1
t-try-pick-up-food
t-try-drop-food
+ t-set-hunger
+ if hunger >= hunger-threshold and enable-hunger [
+ t-try-eat-food
+ if hunger >= hunger-max [
+ die]
2020-06-17 16:17:02 +00:00
+ ]
2020-06-17 16:27:13 +00:00
end
2020-06-17 16:16:10 +00:00
```
2020-06-17 16:27:13 +00:00
Se la formica è affamata (e la fame è attiva), la formica si dirige verso il nido per mangiare.
2020-06-17 16:16:10 +00:00
Se la fame supera una certa soglia prova a mangiare il cibo e se non riesce a farlo prima che superi un valore massimo, la formica muore.
2020-06-17 16:27:13 +00:00
### Aggiunto: `p-respawn-food`
2020-06-17 16:16:10 +00:00
```diff
+to p-respawn-food
+ if random-float 100 < food-respawn-pct[
+ setup-food
+ ]
2020-06-17 16:27:13 +00:00
+end
2020-06-17 16:16:10 +00:00
```
Questa funzione permette al cibo di ricomparire con una certa probabilità.
2020-06-17 16:27:13 +00:00
### Modificato: `go`
2020-06-17 16:16:10 +00:00
```diff
2020-06-17 16:27:13 +00:00
to go
2020-06-17 16:16:10 +00:00
tick
ask ants [t-work]
ask patches [p-evaporate-pheromone]
diffuse pheromone (diffusion-pct / 100)
ask patches [p-paint-patch]
ask ants [t-paint-ant]
+ if enable-food-respawn and ticks mod food-ticks = 0[
+ p-respawn-food
2020-06-17 16:27:13 +00:00
+ ]
end
2020-06-17 16:16:10 +00:00
```
2020-06-17 16:27:13 +00:00
Il `go` ora rigenererà il cibo.
## Attivazione / Disattivazione
Le feature di questo branch possono venire abilitate o disabilitate con gli switch `enable-hunger` e `enable-food-respawn`.
## Ambiente
Le modifiche in questo ambito sono le seguenti:
- Il nido tiene conto di quanto cibo vi venga depositato.
- Il cibo ha la possibilità di ricomparire dopo un certo numero di `tick`.
- Il numero di tick può essere modificato dall'utente interagendo con il controllo `food-ticks`.
- La probabilità può essere modificata dall'utente con lo slider `food-respawn-pct`.
## Formiche
Le modifiche in questo ambito sono le seguenti:
- Ad ogni tick, le formiche hanno una certa probabilità di aumentare il loro valore `hunger` (che parte da 0) di una certa quantità.
- La probabilità può essere alterata dall'utente interagendo con lo slider `hunger-increase-pct`.
- La quantità può essere modificata dall'utente interagendo con il controllo `hunger-per-tick`.
2020-06-17 16:27:13 +00:00
- Nel caso in cui il valore `hunger` della formica superi una certa soglia (`hunger-threshold`), la formica si mette alla ricerca del cibo per sopravvivere. Se il valore `hunger` supera il parametro `hunger-max`, la formica muore.
- Se la formica sta trasportando cibo, mangia il cibo che sta trasportando.
- Se la formica non sta trasportando cibo, si reca al nest sperando di trovarne lì.