From f1c6a91bc9029a95dc9879dee1a55e63abaea87f Mon Sep 17 00:00:00 2001 From: Nemesis Date: Wed, 17 Jun 2020 18:29:32 +0200 Subject: [PATCH] Update README.md --- README.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5edcdb1..aff89e5 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,67 @@ Questo branch estende il progetto [`1-base`](https://github.com/Steffo99/turtle0 ## Descrizione -Ad ogni patch che contiene cibo viene assegnato un valore unico, alle patch vuote viene assegnato il valore 0. Quando il cibo viene spostato, cambia il suo id con quello del mucchio di cui fa parte, e ad ogni tick viene contato il numero di valori unici (0 escluso). Questo permette di calcolare il numero di mucchi in tempo reale, con un errore massimo di 1. +Ad ogni patch che contiene cibo viene assegnato un valore unico, alle patch vuote viene assegnato il valore -1. Quando il cibo viene spostato, cambia il suo id con quello del mucchio di cui fa parte, e ad ogni tick viene contato il numero di valori unici (0 escluso). Questo permette di calcolare il numero di mucchi in tempo reale, con un errore massimo di 1. Il comportamento delle termiti rimane immutato. + +## Aggiunte / Modifiche + +### Aggiunto: variabili globali e delle patch +```diff ++ globals [step carry groups] ++ patches-own [id] +``` +### Modificato: setup +```diff + to setup + clear-all + crt n_termiti + ask turtles [set color white] + ask turtles [setxy random-xcor random-ycor] + ask turtles [set size 5] + ask turtles [set shape "bug"] + ask patches[ + if random-float 100 < densita_cibo[ + set pcolor yellow + ] + ] ++ let counter 0 ++ ask patches with [pcolor = yellow] [set id counter ++ set counter counter + 1 ++ ;set plabel id ++ ] + set carry 0 + reset-ticks + end +``` +Aggiunge ad ogni patch un identificativo univoco. +### Aggiunto: locate-group +```diff ++ to locate-group ++ ask patches with [pcolor = yellow] ++ [let tmp max-one-of neighbors [id] ++ set id [id] of tmp ++ ;set plabel id ++ ] ++ let _unique remove-duplicates [id] of patches ++ set groups length _unique ++ ask patches with [pcolor = black and id != -1] [set id -1] ++ end +``` +Questa funzione permette di aggiornare gli id delle patch. + +### Modificato: go +```diff + to go ;; questa รจ una procedura turtle ++ ifelse step < max_step or max_step = 0 [ ++ ask turtles [cerca-cibo] ++ locate-group ++ ;plotxy step groups ++ set step step + 1 ++ tick ++ ] ++ [ user-message (word "La simulazione ha raggiunto i " max_step " passi.")] + end +``` +Il go strutturato in questo modo permette di gestire il numero massimo di passi per la simulazione e richiama locate-groups ad ogni tick.