1
Fork 0
mirror of https://github.com/Steffo99/turtle007.git synced 2024-11-24 14:04:21 +00:00

Importa progetto dal vecchio repository

This commit is contained in:
Lorenzo Balugani 2020-05-05 16:50:33 +02:00 committed by Stefano Pigozzi
parent c20fd2cc85
commit 1afae47017

View file

@ -1,75 +1,91 @@
globals [step carry groups]
patches-own [id]
to setup to setup
clear-all clear-all
crt n_termiti
set-default-shape turtles "bug" ask turtles [set color white]
ask turtles [setxy random-xcor random-ycor]
ask turtles [set size 5]
;; distribuzione casuale di cibo ask turtles [set shape "bug"]
ask patches ask patches[
[ if random-float 100 < densita_materiale if random-float 100 < densita_cibo[
[ set pcolor yellow ] ] set pcolor yellow
reset-ticks
;; distribuzione casuale di termiti
create-turtles numero_termiti
ask turtles [
set color white
setxy random-xcor random-ycor
set size 5 ;; più facile da vedere
] ]
]
let counter 0
ask patches with [pcolor = yellow] [set id counter
set counter counter + 1
;set plabel id
]
set carry 0
reset-ticks reset-ticks
end end
to roam
to go rt random virata
lt random virata
ask turtles [cerca-cibo appoggia-cibo ]
tick
end
to cerca-cibo
ifelse pcolor = yellow
[set pcolor black set color orange fd rg_inerzia] ;ramo vero
[vaga cerca-cibo] ; ramo falso
end
to vaga
lt random angolo_virata
rt random angolo_virata
fd 1 fd 1
end end
to appoggia-cibo
ifelse pcolor = black
[ set pcolor yellow
set color white
allontanati]
[ vaga
appoggia-cibo ]
end
to allontanati to allontanati
rt random 360 rt random 360
fd rg_libera lt random 360
if pcolor != black fd libera
[ allontanati] if pcolor = yellow [allontanati]
end
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
to appoggia-cibo
ifelse pcolor = black
[ set pcolor yellow
set color white
allontanati]
[ roam
appoggia-cibo]
end
to cerca-cibo
ifelse pcolor = yellow
[ set pcolor black
set color orange
fd inerzia
appoggia-cibo
ask patch-here [set id -1]][
roam
cerca-cibo]
end
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 end
@#$#@#$#@ @#$#@#$#@
GRAPHICS-WINDOW GRAPHICS-WINDOW
210 206
10 13
671 879
472 687
-1 -1
-1 -1
3.0 4.404
1
1 1
10
1 1
1 1
1 1
@ -88,12 +104,12 @@ ticks
30.0 30.0
BUTTON BUTTON
23 7
10 14
97 198
62 47
NIL
Setup Setup
setup
NIL NIL
1 1
T T
@ -105,13 +121,13 @@ NIL
1 1
BUTTON BUTTON
97 7
10 54
174 101
62 87
NIL
Go Go
NIL go
T
1 1
T T
OBSERVER OBSERVER
@ -122,12 +138,12 @@ NIL
1 1
BUTTON BUTTON
23 105
62 54
97 198
122 87
Step Step
let i 1\nwhile [i < numero_step]\n[\n go\n set i i + 1\n]\n go
NIL NIL
1 1
T T
@ -138,116 +154,191 @@ NIL
NIL NIL
1 1
INPUTBOX
13
227
103
287
rg_inerzia
20.0
1
0
Number
INPUTBOX
103
227
195
287
rg_libera
20.0
1
0
Number
SLIDER SLIDER
11 7
134 93
197 198
167 126
densita_materiale n_termiti
densita_materiale n_termiti
0
1000
352.0
1
1
NIL
HORIZONTAL
SLIDER
7
133
198
166
densita_cibo
densita_cibo
0 0
100 100
20.0 52.0
5
1 1
NIL 1
%
HORIZONTAL HORIZONTAL
INPUTBOX INPUTBOX
13 8
287 171
195 199
347 231
angolo_virata inerzia
100.0 10.0
1 1
0 0
Number Number
INPUTBOX
9
236
200
296
libera
10.0
1
0
Number
INPUTBOX
9
301
199
361
virata
10.0
1
0
Number
MONITOR
9
368
199
413
Passi
step
0
1
11
SLIDER SLIDER
11 9
167 420
197 199
200 453
numero_termiti max_step
numero_termiti max_step
50 0
1000 1000
100.0 0.0
50 1
1 1
NIL NIL
HORIZONTAL HORIZONTAL
INPUTBOX PLOT
97 885
62 13
174 1799
122 686
numero_step Numero di gruppi (circa)
100.0 Gruppi
Tempo
0.0
1000.0
0.0
1000.0
true
false
"" ""
PENS
"pen-0" 1.0 0 -16777216 true "" "plotxy step groups"
MONITOR
10
463
198
508
NIL
groups
17
1
11
BUTTON
10
517
198
550
Mostra i patch-id
ask patches [\nset plabel id\n]
T
1
T
OBSERVER
NIL
NIL
NIL
NIL
1
BUTTON
10
556
198
589
Nascondi i patch-id
ask patches [set plabel \" \"]
NIL
1
T
OBSERVER
NIL
NIL
NIL
NIL
1
TEXTBOX
10
592
201
690
Il numero di Gruppi contiene anche il gruppo \"vuoto\", ovvero le zone nere del mondo. Per esaminare i Patch-Id, si consiglia di utilizzare la 3d-view e zoomare manualmente. La misurazione dei gruppi non è perfetta, e può esserci un errore pari a 1.
11
0.0
1 1
0
Number
@#$#@#$#@ @#$#@#$#@
## WHAT IS IT? ## Che cos'è?
(a general understanding of what the model is trying to show or explain) Il modello rappresenta il comportamento delle termiti in un ambiente a cibo sparso.
Serve per mostrare la capacità organizzativa dell'intelligenza-sciame nel creare mucchi di cibo.
## HOW IT WORKS ## Come funziona
(what rules the agents use to create the overall behavior of the model) Il comando go avvia una procedura mediante ask, che manda le turtle alla ricerca di cibo. Se il cibo viene trovato, si allontanano da dove l'hanno trovato e lo posano appena possibile in un posto vuoto, per poi allontanarsi. Se viene superato il numero massimo di passi, il modello si arresta.
## HOW TO USE IT ## Come si usa
(how to use the model, including a description of each of the items in the Interface tab) Inserire i parametri mediante l'interfaccia. I parametri sono:
- n_termiti: numero di turtle da generare
- densita_cibo: percentuale del cibo nella mappa
- inerzia: movimento di base della termite quando ha trovato il cibo
- libera: distanza che la termite percorre per allontanarsi dal cibo
- virata: massimo angolo di rotazione in gradi
- max_step: passi massimi prima di poter arrestare la simulazione (0 = illimitato)
## THINGS TO NOTICE ## Credits
(suggested things for the user to notice while running the model) Lorenzo Balugani
## THINGS TO TRY
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
## EXTENDING THE MODEL
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
## NETLOGO FEATURES
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
## RELATED MODELS
(models in the NetLogo Models Library and elsewhere which are of related interest)
## CREDITS AND REFERENCES
(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)
@#$#@#$#@ @#$#@#$#@
default default
true true