;; lots of variables are taken from the interface, ;; therefore this code cannot run ;; examples: grass? ;; Sheep and wolves are both breeds of turtle. breed [sheep a-sheep] ;; sheep is its own plural, so we use "a-sheep" as the singular. breed [wolves wolf] turtles-own [energy] ;; both wolves and sheep have energy patches-own [countdown] to setup clear-all ask patches [ set pcolor green ] ;; check GRASS? switch. ;; if it is true, then grass grows and the sheep eat it ;; if it false, then the sheep don't need to eat if grass? [ ask patches [ set countdown random grass-regrowth-time ;; initialize grass grow clocks randomly set pcolor one-of [green brown] ] ] set-default-shape sheep "sheep" create-sheep initial-number-sheep ;; create the sheep, then initialize their variables [ set color white set size 1.5 ;; easier to see set label-color blue - 2 set energy random (2 * sheep-gain-from-food) setxy random-xcor random-ycor ] set-default-shape wolves "wolf" create-wolves initial-number-wolves ;; create the wolves, then initialize their variables [ set color black set size 1.5 ;; easier to see set energy random (2 * wolf-gain-from-food) setxy random-xcor random-ycor ] display-labels update-plot end to go if not any? turtles [ stop ] ask sheep [ move if grass? [ set energy energy - 1 ;; deduct energy for sheep only if grass? switch is on eat-grass ] reproduce-sheep death ] ask wolves [ move set energy energy - 1 ;; wolves lose energy as they move catch-sheep reproduce-wolves death ] if grass? [ ask patches [ grow-grass ] ] tick update-plot display-labels end to move ;; turtle procedure rt random 50 lt random 50 fd 1 end to eat-grass ;; sheep procedure ;; sheep eat grass, turn the patch brown if pcolor = green [ set pcolor brown set energy energy + sheep-gain-from-food ;; sheep gain energy by eating ] end to reproduce-sheep ;; sheep procedure if random-float 100 < sheep-reproduce [ ;; throw "dice" to see if you will reproduce set energy (energy / 2) ;; divide energy between parent and offspring hatch 1 [ rt random-float 360 fd 1 ] ;; hatch an offspring and move it forward 1 step ] end to reproduce-wolves ;; wolf procedure if random-float 100 < wolf-reproduce [ ;; throw "dice" to see if you will reproduce set energy (energy / 2) ;; divide energy between parent and offspring hatch 1 [ rt random-float 360 fd 1 ] ;; hatch an offspring and move it forward 1 step ] end to catch-sheep ;; wolf procedure let prey one-of sheep-here ;; grab a random sheep if prey != nobody ;; did we get one? if so, [ ask prey [ die ] ;; kill it set energy energy + wolf-gain-from-food ] ;; get energy from eating end to death ;; turtle procedure ;; when energy dips below zero, die if energy < 0 [ die ] end to grow-grass ;; patch procedure ;; countdown on brown patches: if reach 0, grow some grass if pcolor = brown [ ifelse countdown <= 0 [ set pcolor green set countdown grass-regrowth-time ] [ set countdown countdown - 1 ] ] end to update-plot set-current-plot "populations" set-current-plot-pen "sheep" plot count sheep set-current-plot-pen "wolves" plot count wolves if grass? [ set-current-plot-pen "grass / 4" plot count patches with [pcolor = green] / 4 ;; divide by four to keep it within similar ;; range as wolf and sheep populations ] end to display-labels ask turtles [ set label "" ] if show-energy? [ ask wolves [ set label round energy ] if grass? [ ask sheep [ set label round energy ] ] ] end ; *** NetLogo 4.0beta1 Model Copyright Notice *** ; ; This model was created as part of the project: CONNECTED MATHEMATICS: ; MAKING SENSE OF COMPLEX PHENOMENA THROUGH BUILDING OBJECT-BASED PARALLEL ; MODELS (OBPML). The project gratefully acknowledges the support of the ; National Science Foundation (Applications of Advanced Technologies ; Program) -- grant numbers RED #9552950 and REC #9632612. ; ; Copyright 1998 by Uri Wilensky. All rights reserved. ; ; Permission to use, modify or redistribute this model is hereby granted, ; provided that both of the following requirements are followed: ; a) this copyright notice is included. ; b) this model will not be redistributed for profit without permission ; from Uri Wilensky. ; Contact Uri Wilensky for appropriate licenses for redistribution for ; profit. ; ; This model was converted to NetLogo as part of the projects: ; PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING ; IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. ; The project gratefully acknowledges the support of the ; National Science Foundation (REPP & ROLE programs) -- ; grant numbers REC #9814682 and REC-0126227. ; Converted from StarLogoT to NetLogo, 2000. ; ; To refer to this model in academic publications, please use: ; Wilensky, U. (1998). NetLogo Wolf Sheep Predation model. ; http://ccl.northwestern.edu/netlogo/models/WolfSheepPredation. ; Center for Connected Learning and Computer-Based Modeling, ; Northwestern University, Evanston, IL. ; ; In other publications, please use: ; Copyright 1998 Uri Wilensky. All rights reserved. ; See http://ccl.northwestern.edu/netlogo/models/WolfSheepPredation ; for terms of use. ; ; *** End of NetLogo 4.0beta1 Model Copyright Notice ***