indiscriminate violence| suppressive model
Model was written in NetLogo 6.1.1
•
Viewed 220 times
•
Downloaded 19 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
breed [villagers villager] breed [soldiers soldier] breed [rebels rebel] breed [unfits unfit] breed [deads dead] globals [ ;; Global variables. total-villager total-soldier total-rebel total-dead total-unfit ] turtles-own[ ;; Turtle variables. turn-check wall-turn-check age ] to setup set-default-shape villagers "person business" set-default-shape soldiers "person police" set-default-shape rebels "person soldier" set-default-shape unfits "person student" set-default-shape deads "person" clear-all reset-ticks ask patches [set pcolor grey - 3] create-villagers CIV [ set color grey setxy random-xcor random-ycor set age (random 100) / UNF if age < 1 [set breed unfits set color pink - 1] ] create-soldiers COIN [ set color brown + 3 setxy random-xcor random-ycor set age -2 ] create-rebels INS [ set color brown + 2 setxy random-xcor random-ycor set age (random 100) ] ask turtles [set size 0.5] end to go ;; the fun beginns tick update-globals do-plots set-default-shape villagers "person business" set-default-shape soldiers "person police" set-default-shape rebels "person soldier" set-default-shape unfits "person student" set-default-shape deads "person" ask villagers [ forward 0.2 wander let current-villager self let persuade random count villagers + random 1000 if persuade < random count deads [ask rebels with [distance current-villager < 1] [soothe]] ] ask soldiers [ ;;let closest-home min-one-of patches with [pcolor = green] [distance myself] ;;face closest-home wander forward 0.1 let current-soldier self let attack random 100 if attack < 80 [ask rebels with [distance current-soldier < 1] [kill]] ] ask rebels [ ;;let dice random 3 ;;let change (dice - 1) ;;set heading (heading + change) ;;let closest-rebel min-one-of (other rebels) [distance myself] forward 0.2 wander let current-rebel self let persuade random count rebels + random 1000 if persuade < random count villagers [ask villagers with [distance current-rebel < 1] [radicalize]] let attack random 100 if attack < 5 [ask soldiers with [distance current-rebel < 1] [kill]] ] ask unfits [ wander ;;let closest-home min-one-of patches with [pcolor = grey] [distance myself] ;;face closest-home fd 0.2 ] if IV? [ carefully [ask up-to-n-of random 8 turtles with [age > -1] [kill]] [print error-message] carefully [ask up-to-n-of random 2 rebels [soothe]] [print error-message] ] end ;; one-of patches with [pcolor = grey] ;; while patch witch pcolor grey - 3 (other patches) ;; definitions to reinforce create-soldiers COIN [ set color brown + 2 setxy random-xcor random-ycor ] end to soothe set breed villagers set color grey end to radicalize set breed rebels set color brown + 1 end to kill set breed deads set color black set age -2 end to wander ;; Random movement for agents. set turn-check random 20 if turn-check > 15 [right-turn] if turn-check < 5 [left-turn] if [pcolor] of patch-ahead 1 = green [wall] end to wall ;; Turn agent away from wall set wall-turn-check random 10 if wall-turn-check >= 6 [wall-right-turn] if wall-turn-check <= 5 [wall-left-turn] end to wall-right-turn ;;Generate a random degree of turn for the wall sub-routine. rt 170 end to wall-left-turn ;;Generate a random degree of turn for the wall sub-routine. lt 170 end to right-turn ;;Generate a random degree of turn for the wander sub-routine. rt random-float 10 end to left-turn ;;Generate a random degree of turn for the wander sub-routine. lt random-float 10 end ;;to right-turn ;;rt random-float 10 ;;end ;;to left-turn ;;lt random 10 ;;end ;; reporters to update-globals ;;Set globals to current values for reporters. set total-rebel (count rebels) set total-soldier (count soldiers) set total-villager (count villagers) set total-dead (count deads) set total-unfit (count unfits) end to do-plots ;; Update monitors set-current-plot "Population Totals" set-current-plot-pen "insurgents" plot total-rebel set-current-plot-pen "COIN" plot total-soldier set-current-plot-pen "Civilains" plot total-villager set-current-plot-pen "Dead" plot total-dead set-current-plot-pen "Unfit for battle" plot total-unfit end
There are 6 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
indiscriminate violence| suppressive model.png | preview | Preview for 'indiscriminate violence| suppressive model' | almost 4 years ago, by Stefan Baumgartner | Download |