Zugvögel
Model was written in NetLogo 5.1.0
•
Viewed 261 times
•
Downloaded 15 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Info tab cannot be displayed because of an encoding error
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
;;========================================================================================================================================================================================== ;;=========================================================== Zugvogelmodell ============================================================================================================= ;;========================================================================================================================================================================================== Globals [AnfangsRastEnergie ;; Anlegen später gesetzer Variablen MomRastA ;; MomRastL ;; MomRast ;; weiterfliegen ;; RE ;; EnergieZuwachs ;; LebendR1 ;; LebendR2 ;; LebendR3 ;; Lebend ;; AufZiel ;; z ;; ] breed [Rastplätze Rastplatz] ;; Definieren von Singular und Plural der später verwendeten turtles breed [Vögel Vogel] breed [VögelR1 VogelR1] breed [VögelR2 VogelR2] breed [VögelR3 VogelR3] VögelR1-own ;; Benennen der Eigenschaften der auf Route 1 fliegenden Vögel [VogelEnergie ;; fliegt ;; lebt ;; Route ;; ZählerRoute ;; NächsteRast ;; ] VögelR2-own ;; Benennen der Eigenschaften der auf Route 2 fliegenden Vögel [VogelEnergie fliegt lebt Route ZählerRoute NächsteRast ] VögelR3-own ;; Benennen der Eigenschaften der auf Route 3 fliegenden Vögel [VogelEnergie fliegt lebt Route ZählerRoute NächsteRast ] Rastplätze-own ;; Benennen der Eigenschaften der Rastplätze [RastEnergie] ;; ;;=========== Ende der Deklaration ========================================================================================================================================================== ;;=========== Beginn der setup-Prozedur ===================================================================================================================================================== to setup clear-all reset-ticks display-labels set EnergieZuwachs 1 ;; Festlegen der Regeneration der Vögel während des Rastens (EnergieZuwachs pro tick) if file-exists? "/karte2.png" [import-pcolors-rgb "/karte2.png"] ;; Importieren einer Europa-Karte als Hintergrund (bei Existenz des Dokuments) set-default-shape Rastplätze "circle" Create-Rastplätze 11[ ;; Erzeugen von 11 Rastplätzen mit den Nummern 0-10 set size 3 ;; Festlegen der Größe der Rastplätze set color green ;; Bestimmen der Farbe der Rastplätze set RastEnergie AnfangsRastEnergie ;; Einstellen der Anfangsenergie der Rastplätze auf die auf die durch den Slider "AnfangsRastEnergie" festgelegten Werte ] ifelse Nummernanzeige-Rastplätze [ ask Rastplätze [ set label word who " "] ;; Anzeigen der Rastplatz-Nummern durch Einschalten des Switches "Nummernanzeige-Rastplätze" ] [ask Rastplätze [ set label "" ]] ;;========== Versetzung der Rastplätze ======================================== ask Rastplatz 0 [set xcor -12 ;; Versetzen der Rastplätze auf festgelegten Koordinaten set ycor 36] ask Rastplatz 1 [set xcor -17 set ycor 16] ask Rastplatz 2 [set xcor -26 set ycor 15] ask Rastplatz 3 [set xcor -49 set ycor -7] ask Rastplatz 4 [set xcor -66 set ycor -28] ask Rastplatz 5 [set xcor -87 set ycor -42] ask Rastplatz 6 [set xcor -15 set ycor 12] ask Rastplatz 7 [set xcor 25 set ycor 30] ask Rastplatz 8 [set xcor 27 set ycor -11] ask Rastplatz 9 [set xcor -25 set ycor -10] ask Rastplatz 10 [set xcor 82 set ycor -31] ;;=========== Einstellung der Startenergien der Rastplätze ==================== ask Rastplatz 0 [set RastEnergie AnfangsEnergieStartplatz1] ;; Einstellen der RastEnergie des Rastplatzes 0 auf die durch den Slider "AnfangsEnergieStartplatz1" festgelegten Werte ask Rastplatz 7 [set RastEnergie AnfangsEnergieStartplatz2] ask Rastplatz 1 [set RastEnergie AnfangsEnergieRastplatz1] ask Rastplatz 2 [set RastEnergie AnfangsEnergieRastplatz2] ask Rastplatz 3 [set RastEnergie AnfangsEnergieRastplatz3] ask Rastplatz 4 [set RastEnergie AnfangsEnergieRastplatz4] ask Rastplatz 5 [set RastEnergie AnfangsEnergieRastplatz5] ask Rastplatz 6 [set RastEnergie AnfangsEnergieRastplatz6] ask Rastplatz 8 [set RastEnergie AnfangsEnergieRastplatz8] ask Rastplatz 9 [set RastEnergie AnfangsEnergieRastplatz9] ask Rastplatz 10 [set RastEnergie AnfangsEnergieRastplatz10] ;;=========== Erzeugung der Links für die Routen 1-3 ======================== ;;=========== Erzeugung der Links für Route 1 =============================== ask Rastplatz 0 [create-link-to Rastplatz 1] ;; Erzeugen von Route 1 durch Verbindung von je zwei Rastplätzen mittels Link ask link 0 1 [set color 15] ;; Bestimmen der Farbe des Links ask Rastplatz 1 [create-link-to Rastplatz 2] ask link 1 2 [set color 15] ask Rastplatz 2 [create-link-to Rastplatz 3] ask link 2 3 [set color 15] ask Rastplatz 3 [create-link-to Rastplatz 4] ask link 3 4 [set color 15] ask Rastplatz 4 [create-link-to Rastplatz 5] ask link 4 5 [set color 15] ;;========== Erzeugung der links für Route 2 =============================== ask Rastplatz 7 [create-link-to Rastplatz 6] ;; Erzeugen von Route 2 durch Verbindung von je zwei Rastplätzen mittels Link ask link 7 6 [set color 114] ;; Bestimmen der Farbe des Links ask Rastplatz 6 [create-link-to Rastplatz 9] ask link 6 9 [set color 114] ask Rastplatz 9 [create-link-to Rastplatz 4] ask link 9 4 [set color 114] ask Rastplatz 4 [create-link-to Rastplatz 5] ;;=========== Erzeugung der links für Route 3 =============================== ask Rastplatz 7 [create-link-to Rastplatz 10] ;; Erzeugen von Route 3 durch Verbindung von je zwei Rastplätzen mittels Link ask link 7 10 [set color 62] ;; Bestimmen der Farbe des Links ask Rastplatz 10 [create-link-to Rastplatz 8] ask link 10 8 [set color 62] ask Rastplatz 8 [create-link-to Rastplatz 4] ask link 8 4 [set color 62] ask Rastplatz 4 [create-link-to Rastplatz 5] ;;============ Erzeugen der Vögel für die Routen 1-3 ======================= ;;============ Erzeugen der Vögel Routen 1 ================================= create-VögelR1 AnzahlVögelR1 [ set color 15 ;; Bestimmen der Farbe der auf Route 1 fliegenden Vögel set size 3 ;; Festlegen der Größe der Vögel set z random 25 ;; set xcor -5 + z ;; Versetzen und Verteilen der Vögel oberhalb einer diagonalen Linie set ycor 45 + z * 0.8 + random 10 ;; Versetzen und Verteilen der Vögel oberhalb einer diagonalen Linie set VogelEnergie AnfangsVogelR1Energie ;; Einstellen der VogelEnergie auf die durch den Slider "AnfangsVogelR1Energie" festgelegten Werte set Route [0 1 2 3 4 5] ;; Angeben der Rastplatz Nummern die ein VögelR1 abfliegen soll set ZählerRoute 0 ;; Setzen des Zählers auf 0 gibt später an auf welcher Position der Route ein Vogel ist set fliegt 1 ;; Setzen der Eigenschaft fliegt auf den Wert 1 => Vogelgrundzustang in Bewegung set lebt 1 ;; Einstellen der Eigenschaft lebt 1 => alle erzeugten Vögel leben ] ;;============= Erzeugen Vögel Route 2=================================== create-VögelR2 AnzahlVögelR2 [ set color 114 ;; Bestimmen der Farbe der auf Route 2 fliegenden Vögel set size 3 ;; Festlegen der Größe der Vögel set xcor 50 - random 20 ;; Versetzen und Verteilen der Vögel in einem Rechteck set ycor 60 - random 20 ;; Versetzen und Verteilen der Vögel in einem Rechteck set VogelEnergie AnfangsVogelR2Energie ;; Einstellen der VogelEnergie auf die durch den Slider "AnfangsVogelR2Energie" festgelegten Werte set Route [7 6 9 4 5] ;; Angeben der Rastplatz Nummern die ein VögelR2 abfliegen soll set ZählerRoute 0 ;; Setzen des Zählers auf 0 gibt später an auf welcher Position der Route ein Vogel ist set fliegt 1 ;; Setzen der Eigenschaft fliegt auf den Wert 1 => Vogelgrundzustang in Bewegung set lebt 1 ;; Einstellen der Eigenschaft lebt 1 => alle erzeugten Vögel leben ] ;;============== Erzeugen Vögel Route 3================================ create-VögelR3 AnzahlVögelR3 [ set color 62 ;; Bestimmen der Farbe der auf Route 3 fliegenden Vögel set size 3 ;; Festlegen der Größe der Vögel set xcor 50 + random 20 ;; Versetzen und Verteilen der Vögel in einem Rechteck set ycor 40 - random 30 ;; Versetzen und Verteilen der Vögel in einem Rechteck set VogelEnergie AnfangsVogelR3Energie ;; Einstellen der VogelEnergie auf die durch den Slider "AnfangsVogelR3Energie" festgelegten Werte set Route [7 10 8 4 5] ;; Angeben der Rastplatz Nummern die ein VögelR3 abfliegen soll set ZählerRoute 0 ;; Setzen des Zählers auf 0 gibt später an auf welcher Position der Route ein Vogel ist set fliegt 1 ;; Setzen der Eigenschaft fliegt auf den Wert 1 => Vogelgrundzustang in Bewegung set lebt 1 ;; Einstellen der Eigenschaft lebt 1 => alle erzeugten Vögel leben ] end ;;================ Ende der setup-Prozedur =================================================================================================================================================== ;;============================================================================================================================================================================================ ;;================ Beginn des Start-Prozesses ================================================================================================================================================ to Start tick ;; Starten und Zählen der ticks set AufZiel 0 ask (turtle-set VögelR1 VögelR2 VögelR3) ;; Festlegen der turtles, für die die folgenden befehle auszuführen sind [set NächsteRast (item ZählerRoute Route) ;; Erfragen der Nummer des Nächsten Rastplatzes face Rastplatz NächsteRast set MomRastA (Rastplätze in-radius 1.5 ) ;; Erstellen eines Agentsets des Rastplatzes, an dem der Vogel ist oder ein leeres Agentset (nobody) set MomRastL [who] of MomRastA; ;; Festlegen von MomRast als Liste mit einer Rastplatnummer oder eine leere Liste if (not (MomRastL = [])) [set MomRast (item 0 MomRastL) ;; Entnehmen der Nummer des Rastplatzes aus MomRast, wenn MomRast nicht leer ist if (MomRast = NächsteRast) and (ZählerRoute < length(Route) - 1) [set ZählerRoute (ZählerRoute + 1) set fliegt 0] if (MomRast = 5) [set AufZiel (AufZiel + 1) ] ;; Zählen der an ihrem Ziel befindlichen Vögel ] ;; =========== Fall: Vogel fliegt ======================================================================================== if (fliegt = 1) [forward 0.1 set VogelEnergie (VogelEnergie - VogelVerbrauch)] if (fliegt = 1) and (not (MomRastL = [])) [set VogelEnergie (VogelEnergie + VogelVerbrauch) ] ;; =========== Fall: Vogel fliegt nicht ================================================================================== if (fliegt = 0) and (not (MomRastL = [])) [ask Rastplatz (item 0 MomRastL) [ifelse (RastEnergie <= 0) [set weiterfliegen 1] [set weiterfliegen 0] if RastEnergie >= RastplatzVerbrauch and (not (MomRast = 5)) [ set RastEnergie round (RastEnergie - RastplatzVerbrauch) ] set RE RastEnergie ] if (weiterfliegen = 1 ) [set fliegt 1] if (RE > 0) [set VogelEnergie (VogelEnergie + EnergieZuwachs)] ] if (VogelEnergie >= 100) [set fliegt 1] ;; Festlegen, wann ein Vogel wieder losfliegen soll if (VogelEnergie <= 0 ) [set fliegt 0] ;; Festlegen, wann ein Vogel anhalten soll if (VogelEnergie <= 0) [set lebt 0] ;; Wann setzt ein Vögel seine Eigenschaft lebt auf 0 => Vogel tot ] set LebendR1 sum ([lebt] of VögelR1) ;; Berechnen aller lebenden Vögel auf Route 1 set LebendR2 sum ([lebt] of VögelR2) ;; Berechnen aller lebenden Vögel auf Route 2 set LebendR3 sum ([lebt] of VögelR3) ;; Berechnen aller lebenden Vögel auf Route 3 set Lebend (LebendR1 + LebendR2 + LebendR3) ;; Berechnen aller lebender Vögel aller Routen if (Lebend = AufZiel) [stop] ;; Stoppen des Programms, wenn alle lebenden Vögel am Ziel sind display-labels ;; Ausführen von display-labels end ;;============== Ende des Start-Prozesses ==================================================================================================================================================== ;;============================================================================================================================================================================================ ;;============== Anzeige der Labels ========================================================================================================================================================== to display-labels ;; Anzeigen der gerundeten Energie-Labels von Rastplätzen und Vögeln ifelse Energieanzeige-Rastplätze [ ask Rastplätze [set label word (round RastEnergie) "___" ]] ;; Abtrennen der Energien durch "___" [ask Rastplätze [ set label "___" ]] ifelse Energieanzeige-VögelR1 [ ask VögelR1 [set label word (round VogelEnergie) "" ]] [ask VögelR1 [ set label "" ] ] ifelse Energieanzeige-VögelR2 [ask VögelR2 [set label word (round VogelEnergie) "" ]] [ask VögelR2 [ set label "" ] ] ifelse Energieanzeige-VögelR3 [ask VögelR3 [set label word (round VogelEnergie) "" ]] [ask VögelR3 [ set label "" ] ] end ;;============== Ende Anzeigen der Labels===================================================================================================================================================== ;;============================================================================================================================================================================================ ;;=============== Programm - Ende ============================================================================================================================================================ ;;============================================================================================================================================================================================ ; Copyright 2015 Christian Albrecht, Lara Brozio, Matthias Otto und Julia Sprengel. ; See Info tab for full copyright and license.
There is only one version of this model, created about 9 years ago by Matthias Otto.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Zugvögel.png | preview | Preview for 'Zugvögel' | about 9 years ago, by Matthias Otto | Download |
This model does not have any ancestors.
This model does not have any descendants.