mirror of
https://github.com/Steffo99/turtle007.git
synced 2024-11-25 14:34:20 +00:00
Importa progetto dal vecchio repository
This commit is contained in:
parent
c20fd2cc85
commit
7bf70dc85e
1 changed files with 93 additions and 18 deletions
107
Progetto.nlogo
107
Progetto.nlogo
|
@ -24,16 +24,20 @@ end
|
||||||
|
|
||||||
|
|
||||||
to go
|
to go
|
||||||
|
|
||||||
ask turtles [cerca-cibo appoggia-cibo ]
|
ask turtles [cerca-cibo appoggia-cibo ]
|
||||||
tick
|
tick
|
||||||
end
|
end
|
||||||
|
|
||||||
to cerca-cibo
|
to cerca-cibo
|
||||||
|
|
||||||
ifelse pcolor = yellow
|
; vago finchè non trovo cibo
|
||||||
[set pcolor black set color orange fd rg_inerzia] ;ramo vero
|
while [ pcolor = black or not efficient? (true)][
|
||||||
[vaga cerca-cibo] ; ramo falso
|
vaga ]
|
||||||
|
|
||||||
|
; Finito il while, ho trovato del cibo: lo raccolgo e mi allontano
|
||||||
|
set pcolor black
|
||||||
|
set color orange
|
||||||
|
fd rg_inerzia
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -45,19 +49,53 @@ end
|
||||||
|
|
||||||
|
|
||||||
to appoggia-cibo
|
to appoggia-cibo
|
||||||
ifelse pcolor = black
|
while [ pcolor != black or not efficient?(false)]
|
||||||
[ set pcolor yellow
|
|
||||||
set color white
|
|
||||||
allontanati]
|
|
||||||
[ vaga
|
[ vaga
|
||||||
appoggia-cibo ]
|
]
|
||||||
|
|
||||||
|
set pcolor yellow
|
||||||
|
set color white
|
||||||
|
allontanati
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
to allontanati
|
to allontanati
|
||||||
rt random 360
|
let energy 10
|
||||||
|
while[ pcolor != black and not tired?(energy)]
|
||||||
|
[ rt random 360
|
||||||
fd rg_libera
|
fd rg_libera
|
||||||
if pcolor != black
|
set energy energy - (EnergyLostPerAction / 10)
|
||||||
[ allontanati]
|
set color energy
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
to-report efficient? [needEmptyArea]
|
||||||
|
; Boolean che dice se è efficiente eseguire l'azione che la evoca
|
||||||
|
; needEmptyArea è un bool che mi definisce l'obiettivo tra:
|
||||||
|
; - cercare una zona semi-vuota da cui prelevate cibo (true)
|
||||||
|
; - cercare una zona semi-piena in cui appoggiare il cibo (false)
|
||||||
|
|
||||||
|
;se non ho attivato la modalità efficiente, il bool è sempre soddisfatto
|
||||||
|
if not efficiency [report true]
|
||||||
|
|
||||||
|
;altrimenti, entra in gioco il needEmptyArea
|
||||||
|
ifelse needEmptyArea
|
||||||
|
[ ;è considerata "vuota" un'area in cui ci sia meno del 40% di caselle con del cibo
|
||||||
|
report (count patches in-radius 2 with [pcolor != black] /
|
||||||
|
count patches in-radius 2 < 0.4)
|
||||||
|
]
|
||||||
|
[ ;è considerata "piena" un'area in cui ci sia più del 40% di caselle con del cibo
|
||||||
|
report (count patches in-radius 2 with [pcolor != black] /
|
||||||
|
count patches in-radius 2 > 0.4)
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
to-report tired? [energy]
|
||||||
|
; Boolean che monitora l'energia rimasta alla termite
|
||||||
|
|
||||||
|
; se non ho attivato la modalità tiredness, la formica avrà sempre energia sufficiente
|
||||||
|
; altrimenti, controllo se l'energia rimasta è sufficiente
|
||||||
|
ifelse not tiredness [report false][report (energy < random-float 10)]
|
||||||
end
|
end
|
||||||
@#$#@#$#@
|
@#$#@#$#@
|
||||||
GRAPHICS-WINDOW
|
GRAPHICS-WINDOW
|
||||||
|
@ -81,8 +119,8 @@ GRAPHICS-WINDOW
|
||||||
75
|
75
|
||||||
-75
|
-75
|
||||||
75
|
75
|
||||||
0
|
1
|
||||||
0
|
1
|
||||||
1
|
1
|
||||||
ticks
|
ticks
|
||||||
30.0
|
30.0
|
||||||
|
@ -111,7 +149,7 @@ BUTTON
|
||||||
62
|
62
|
||||||
NIL
|
NIL
|
||||||
Go
|
Go
|
||||||
NIL
|
T
|
||||||
1
|
1
|
||||||
T
|
T
|
||||||
OBSERVER
|
OBSERVER
|
||||||
|
@ -207,11 +245,48 @@ INPUTBOX
|
||||||
174
|
174
|
||||||
122
|
122
|
||||||
numero_step
|
numero_step
|
||||||
100.0
|
1000.0
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
Number
|
Number
|
||||||
|
|
||||||
|
SWITCH
|
||||||
|
13
|
||||||
|
357
|
||||||
|
195
|
||||||
|
390
|
||||||
|
Efficiency
|
||||||
|
Efficiency
|
||||||
|
1
|
||||||
|
1
|
||||||
|
-1000
|
||||||
|
|
||||||
|
SWITCH
|
||||||
|
13
|
||||||
|
391
|
||||||
|
196
|
||||||
|
424
|
||||||
|
Tiredness
|
||||||
|
Tiredness
|
||||||
|
0
|
||||||
|
1
|
||||||
|
-1000
|
||||||
|
|
||||||
|
SLIDER
|
||||||
|
13
|
||||||
|
424
|
||||||
|
196
|
||||||
|
457
|
||||||
|
EnergyLostPerAction
|
||||||
|
EnergyLostPerAction
|
||||||
|
1
|
||||||
|
100
|
||||||
|
20.0
|
||||||
|
1
|
||||||
|
1
|
||||||
|
%
|
||||||
|
HORIZONTAL
|
||||||
|
|
||||||
@#$#@#$#@
|
@#$#@#$#@
|
||||||
## WHAT IS IT?
|
## WHAT IS IT?
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue