Garden ecosystem
No preview image
Model was written in NetLogo 5.3.1
•
Viewed 410 times
•
Downloaded 33 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
breed [farmers farmer] breed [plants plant] breed [weeds weed] turtles-own [energy my-heading] patches-own [nutrients fertile] ;; nutrients determines the soil quality. fertile determines if a seed can be sprouted there; affected by spacing. globals [ total-harvested;; lbs of produce harvested by the farmer money;; budget for the project crop ] to setup clear-all setup-patches setup-turtles make-farmer reset-ticks set money (budget - (count plants * plant-cost)) end to setup-patches ask patches [ set nutrients (random 15) ] repeat 5 [diffuse nutrients 1] ask patches [ set pcolor scale-color brown nutrients 10 0 if remainder pxcor spacing = 0 and remainder pycor spacing = 0 [set fertile true ]] end to setup-turtles create-weeds 0 end to make-farmer create-farmers 1 [ set color cyan set size 3 set shape "farmer" setxy 0 0 set heading 90 set my-heading 270 run "seed" ] end to seed repeat (number-plants) [ ask farmers [ (ask patch-here [ if fertile = true and not any? plants-here [ sprout-plants 1 [ set shape "plant" set size 0.2 set energy 2 ]]]) fd (spacing) if not can-move? 1 [ set heading 0 fd spacing set heading my-heading ifelse my-heading = 90 [set my-heading 270] [set my-heading 90] ]] ] end to re-seed repeat (number-plants * spacing) [ ask farmers [fd spacing (ask patch-here [ if fertile = true and not any? plants-here [ sprout-plants 1 [ set shape "plant" set size 0.2 set energy 2 ]]]) if not can-move? 1 [ set heading 0 fd spacing set heading my-heading ifelse my-heading = 90 [set my-heading 270] [set my-heading 90] ]]] end to go animate tick end to animate ask turtles [ run word breed "-grow" run word breed "-check-if-dead" run word breed "-eat" ] ;wait 1 if any? patches with [not any? plants-here and nutrients > 5] [ ask one-of patches with [not any? plants-here and nutrients > 5] [ sprout-weeds 1 [ set breed weeds set shape "flower budding" set color lime set energy 1 set size 0.03;; somehow I want to adjust this so that plants are more likely to appear in spaces with high nutrient level harvest-plants harvest-weeds ]]] end to plants-grow if (energy > 3) [set size size + 0.02] end to weeds-grow;; if (energy > 2) [set size size + 0.04];; arbitrary numbers but weeds grow faster end to farmers-grow end to plants-check-if-dead if (energy <= 0) [ set nutrients (nutrients + 0.5) set pcolor scale-color brown nutrients 10 0 die ] ;;maybe have them "flash" before they die, or 'turn red, wait 3' so we know to look at them **note that i can't get this part to work. they freeze up. end to weeds-check-if-dead if (energy <= 0) [ die ] end to farmers-check-if-dead end to plants-eat if (nutrients >= 1) [ set energy energy + 1 set nutrients (nutrients - 0.2) ask neighbors4 [set nutrients (nutrients - 0.05) set pcolor scale-color brown nutrients 10 0];; plants slowly take nutrients from soil set pcolor scale-color brown nutrients 10 0] if (nutrients < 1) [ set energy energy - 0.1];; if no nutrients in the soil, this arbitrary rate is how fast they will die end to weeds-eat if (nutrients >= 1) [ set energy energy + 1 set nutrients (nutrients - 0.1) ask neighbors4 [ set nutrients (nutrients - 0.08) set pcolor scale-color brown nutrients 10 0];; weeds take nutrients from soil less quickly set pcolor scale-color brown nutrients 10 0] if (nutrients < 1) [ set energy energy - 0.1];; if no nutrients in the soil, this arbitrary rate is how fast they will die end to farmers-eat end to harvest-plants ask farmers [ set hidden? not mouse-inside? setxy mouse-xcor mouse-ycor ] if mouse-inside? and mouse-down? [ set crop plants with [distance one-of farmers < (size / 2)] if any? crop [ let weight sum [size] of crop set total-harvested (total-harvested + (ceiling (1.5 * weight * count crop))) ask crop [ die ] ]] end to harvest-weeds ask farmers [ set hidden? not mouse-inside? setxy mouse-xcor mouse-ycor ] if mouse-inside? and mouse-down? [ let weedable weeds with [distance one-of farmers < (size * 2)] if any? weedable [ ask weedable [ die ] ] ] end to add-compost ask patches [set nutrients (nutrients + 5) set pcolor scale-color brown nutrients 10 0 ] set money (money - 20) end to add-herbicide ask weeds [die] ask plants [ set energy energy - 2] ask patches [set nutrients (nutrients - 2) set pcolor scale-color brown nutrients 10 0 ] set money (money - 30) end
There is only one version of this model, created about 7 years ago by Becca Shareff.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.