Netlogo casus 1
Uitgangspunten van deze casus:
- Turtles hebben allemaal een eigenschap energie, willekeurig toegewezen met de waarde 0-4.
- Patches hebben allemaal een eigenschap energie, willekeurig toegewezen met de waarde 0-12.
- De Turtels worden willekeurig geplaatst.
- De Turtels bewegen over de patches, elke tick is 1 stap vooruit (rechtelijn).
- Bij elke stap verliest de Turtle 1 energie.
- Heeft de Turtle geen energie meer dan krijgt deze 4 energie van de Patch. De Patch verliest 1 energie.
- Hebben zowel de Turtle als de Patch geen energie meer dan gaat de turtle dood.
- De kleur van de patch is gelijk aan de energiewaarde.
- Gaat er een Turtle dood dan wordt de patchkleur rood (15)
- We starten met 100 Turtles.
Variabelen: de globale variabele houdt het aantal levende Turtles bij. Aangezien elke variabele uniek moet zijn heet de energie variabele bij de turtles 'energyturtles'.
globals [
numberlive
]
turtles-own [
energyturtles
]
patches-own [
energy
]
In de setup worden patches van energy voorzien en krijgen de juiste kleur. De Turtles worden aangemaakt, krijgen een random energy en worden willekeurig geplaatst.
to setup
clear-all
reset-ticks
ask patches [
set energy random 12
set pcolor energy
]
set numberlive 100
create-turtles numberlive [
set energyturtles random 4
setxy random-xcor random-ycor
]
end
Hieronder wordt het algoritme uitgevoerd zoals beschreven, er staat ter verduidelijking commentaar in. Je ziet dat Turtles toegang hebben tot de variabelen van de Patch waar ze zich op dat moment bevinden.
to go
ask turtles [
right 0
forward 1
ifelse energyturtles = 0 [
;; de Turtle heeft geen energie meer, ik mag direct de eigenschappen van de patch uitlezen en bewerken
ifelse energy > 0 [
;; de patch heeft nog wel energie, deze wordt overgedragen
set energy energy - 1
set energyturtles 4
set pcolor energy
] [
;; dit is de else de Turtle en de Patch hebben geen energie meer, de Turtle gaat dood
set pcolor 15
set numberlive numberlive - 1
die
]
] [
;; de Turtle heeft nog energie en verliest er 1.
set energyturtles energyturtles - 1
]
]
if numberlive = 0 [
;; er zijn geen levende Turtles meer, het programma stopt.
stop
]
tick
end
Soms gaan er meer Turtles dood dan er zijn...