netlogo - How to stop two breeds of turtles from repeating the same command? -
this first time posting, criticism appreciated! started netlogo recently, , have move way model working on. model suppose evaluate farmers join a) ecommerce or b) traditional means. both, ecommerce , traditional commerce increase farmers' wellbeing differently.
ideally, these 2 breeds of turtles join ecommerce or traditional commerce. turtles joined ecommerce evaluate if wellbeing better off once joined ecommerce. if not, traditional commerce turtle , join it. turtles went traditional commerce should decide join ecommerce if there other turtles using ecommerce in proximity. still don't have part of code since stuck on one. unfortunately, part of code:
set wellbeing wellbeing + traditional-wellbeing-value
makes turtles' wellbeing increase every tick on time. looking way prevent turtles increasing wellbeing on , on again. then, have each turtle evaluate current wellbeing , decide move if needed. below code i've come far:
globals [ area max-farmers max-patches ] breed [ farmers farmer ] ; breed [ ecommerce ecommerces ] breed [ traditional traditionals] turtles-own [ wellbeing velocity ] setup clear-all set max-patches 100 set-default-shape farmers "person" create-farmers initial-number-farmers ; farmers [ set color white set size 2 ; set label-color blue - 2 set wellbeing 1 set velocity 2 setxy random-xcor random-ycor ] set-default-shape ecommerce "plant" create-ecommerce initial-number-ecommerces ; ecommerce agricultural turtles [ set color red set size 2 set label-color blue - 2 set wellbeing 5 set velocity 0 let ewellbeing ecommerce-wellbeing-value setxy random-xcor random-ycor create-link-with one-of farmers ] set-default-shape traditional "plant" create-traditional initial-number-traditionals ; traditional agrigultural turtles [ set color blue set size 2 set wellbeing 1 set velocity 0 let twellbeing wellbeing + 1 setxy random-xcor random-ycor create-link-with one-of farmers ] ask patches [ set pcolor green ] display-labels reset-ticks end go ask farmers [ move join-ecommerce join-traditional ] end move ; turtle procedure if velocity = 2 [ ask farmers [ rt random 50 lt random 50 fd 1 ] ] ;;;;;;;problem begins;;;;;;;; if velocity = 0 [ ask myself [ stop ] ] let ready-to-move (wellbeing < 10) ask other turtles [ wellbeing < 10 ] let candidates traditionals in-radius 5 if any? candidates [ let target min-one-of candidates [distance myself] move-to target ] tick display-labels end join-ecommerce let prey one-of ecommerce-here if prey != nobody [ set wellbeing wellbeing + ecommerce-wellbeing-value ; improve wellbeing set velocity farmer 0] end join-traditional let prey one-of traditional-here ; if prey != nobody ; [ set wellbeing wellbeing + traditional-wellbeing-value set velocity farmer 0] ; improve wellbeing end display-labels ask turtles [ set label "" ] if show-wellbeing? [ ask farmers [ set label round wellbeing ] ] end
many in advance!
Comments
Post a Comment