Makuleke Land Dispossession
Model was written in NetLogo 6.3.0
•
Viewed 169 times
•
Downloaded 7 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
globals [ makuleke-patches rangers-patches conflicts ] breed [makuleke a-makuleke] breed [cattle a-cattle] breed [rangers a-ranger] breed [elephants a-elephant] to setup clear-all setup-patches setup-turtles set makuleke-patches patches with [pcolor = 65] if year = 1800 [ set initial-makuleke 50] if year = 1903 [ set makuleke-patches patches with [pcolor = 65] set rangers-patches patches with [pcolor = 63] set initial-makuleke 50 set initial-rangers 10 ] if year = 1933 [ set makuleke-patches patches with [pcolor = 26] set rangers-patches patches with [pcolor = 63] set initial-makuleke 45 set initial-rangers 15 ] if year = 1961 [ set makuleke-patches patches with [pcolor = 26] set rangers-patches patches with [pcolor = 63] set initial-makuleke 40 set initial-rangers 20 ] if year = 1969 [ set makuleke-patches patches with [pcolor = 26] set rangers-patches patches with [pcolor = 63] set initial-makuleke 40 set initial-rangers 25 ] reset-ticks end to setup-patches set-patch-size 20 ;; patches representing area between the Limpopo and Levuvha River if year = 1800 [ ask patches [set pcolor 65] set makuleke-patches patches with [pcolor = 65] ] if year = 1903 [ ask patches [set pcolor 65] set makuleke-patches patches with [pcolor = 65] ] if year = 1933 [ ask patches [set pcolor 26] set makuleke-patches patches with [pcolor = 26] ] if year = 1961 [ ask patches [set pcolor 26] set makuleke-patches patches with [pcolor = 26] ] if year = 1969 [ ask patches [set pcolor 26] set makuleke-patches patches with [pcolor = 26] ] ;; blue patches representing the Limpopo and Levuvha River ask patches at-points [ [-16 11] [-15 12] [-14 13] [-13 14] [-12 15] [-11 16] [-10 16] [-9 16] [-8 15] [-7 14] [-6 13] [-5 12] [-4 11] [-3 10] [-2 9] [-1 9] [0 10] [1 11] [2 12] [3 13] [4 13] [5 13] [6 12] [7 11] [8 10] [9 9] [10 8] [11 7] [12 6] [12 4] [6 2] [2 0] [1 -1][-1 -1] [-2 0] [13 5] [11 3] [8 2] [7 3] [5 1] [10 2] [9 1] [4 0] [3 1] [0 0] [-3 -1] [-4 0] [-5 -1] [-6 0] [-7 1] [-8 0] [-9 1] [-10 0] [-11 1] [-12 0] [-13 1] [-14 0] [-15 -1] [-16 0] ] [set pcolor blue] ;; darker gray patches representing Mozambique ask patches at-points [ [16 5] [16 4] [16 3] [15 4] [15 5] [15 6] [16 6] [16 7] [14 5] ] [set pcolor 3] ;; lighter gray patches representing Zimbabwe ask patches at-points [ [-16 12] [-16 13] [-16 14] [-16 15] [-16 16] [-15 13] [-15 14] [-15 15] [-15 16] [-14 14] [-14 15] [-14 16] [-13 15] [-13 16] [-12 16] [-8 16] [-7 16] [-6 16] [-5 16] [-4 16] [-3 16] [-2 16] [-1 16] [0 16] [1 16] [2 16] [3 16] [4 16] [5 16] [4 16] [5 16] [6 16] [7 16] [8 16] [9 16] [10 16] [11 16] [12 16] [13 16] [14 16] [15 16] [16 16] [-7 15] [-6 15] [-5 15] [-4 15] [-3 15] [-2 15] [-1 15] [0 15] [1 15] [2 15] [3 15] [4 15] [5 15] [6 15] [7 15] [8 15] [9 15] [10 15] [11 15] [12 15] [13 15] [14 15] [15 15] [16 15] [-6 14] [-5 14] [-4 14] [-3 14] [-2 14] [-1 14] [0 14] [1 14] [2 14] [3 14] [4 14] [5 14] [6 14] [7 14] [8 14] [9 14] [10 14] [11 14] [12 14] [13 14] [14 14] [15 14] [16 14] [-5 13] [-4 13] [-3 13] [-2 13] [-1 13] [0 13] [1 13] [2 13] [-4 12] [-3 12] [-2 12] [-1 12] [0 12] [1 12] [-3 11] [-2 11] [-1 11] [0 11] [-2 10] [-1 10] [6 13] [7 13] [8 13] [9 13] [10 13] [11 13] [12 13] [13 13] [14 13] [15 13] [16 13] [7 12] [8 12] [9 12] [10 12] [11 12] [12 12] [13 12] [14 12] [15 12] [16 12] [8 11] [9 11] [10 11] [11 11] [12 11] [13 11] [14 11] [15 11] [16 11] [9 10] [10 10] [11 10] [12 10] [13 10] [14 10] [15 10] [16 10] [10 9] [11 9] [12 9] [13 9] [14 9] [15 9] [16 9] [11 8] [12 8] [13 8] [14 8] [15 8] [16 8] [12 7] [13 7] [14 7] [15 7] [13 6] [14 6] ] [set pcolor 6] ;; green patches representing area south of the Levuvha River if year = 1800 [ ask patches with [pycor <= -2] [set pcolor 65] ask patches at-points [ [-16 -1] [-14 -1] [-13 -1] [-13 0] [-12 -1] [-11 -1] [-10 -1] [-9 -1] [-8 -1] [-7 -1] [-6 -1] [2 -1] [3 -1] [4 -1] [5 -1] [6 -1] [7 -1] [8 -1] [9 -1] [10 -1] [11 -1] [12 -1] [13 -1] [14 -1] [15 -1] [16 -1] [5 0] [6 0] [7 0] [8 0] [9 0] [10 0] [11 0] [12 0] [13 0] [14 0] [15 0] [16 0] [-11 0] [-9 0] [-7 0] [-4 -1] [-2 -1] [0 -1] [3 0] [6 1] [7 1] [8 1] [7 2] [10 1] [11 1] [12 1] [13 1] [14 1] [15 1] [16 1] [11 2] [12 2] [13 2] [14 2] [15 2] [16 2] [12 3] [13 3] [14 3] [15 3] [13 4] [14 4] ] [set pcolor 65] ] ;; darker green patches representing protected area (considered "ranger-patches") south of the Levuvha River if year = 1903 [ ask patches with [pycor <= -2] [set pcolor 63] ask patches at-points [ [-16 -1] [-14 -1] [-13 -1] [-13 0] [-12 -1] [-11 -1] [-10 -1] [-9 -1] [-8 -1] [-7 -1] [-6 -1] [2 -1] [3 -1] [4 -1] [5 -1] [6 -1] [7 -1] [8 -1] [9 -1] [10 -1] [11 -1] [12 -1] [13 -1] [14 -1] [15 -1] [16 -1] [5 0] [6 0] [7 0] [8 0] [9 0] [10 0] [11 0] [12 0] [13 0] [14 0] [15 0] [16 0] [-11 0] [-9 0] [-7 0] [-4 -1] [-2 -1] [0 -1] [3 0] [6 1] [7 1] [8 1] [7 2] [10 1] [11 1] [12 1] [13 1] [14 1] [15 1] [16 1] [11 2] [12 2] [13 2] [14 2] [15 2] [16 2] [12 3] [13 3] [14 3] [15 3] [13 4] [14 4] ] [set pcolor 63] ] if year = 1933 [ ask patches with [pycor <= -2] [set pcolor 63] ask patches at-points [ [-16 -1] [-14 -1] [-13 -1] [-13 0] [-12 -1] [-11 -1] [-10 -1] [-9 -1] [-8 -1] [-7 -1] [-6 -1] [2 -1] [3 -1] [4 -1] [5 -1] [6 -1] [7 -1] [8 -1] [9 -1] [10 -1] [11 -1] [12 -1] [13 -1] [14 -1] [15 -1] [16 -1] [5 0] [6 0] [7 0] [8 0] [9 0] [10 0] [11 0] [12 0] [13 0] [14 0] [15 0] [16 0] [-11 0] [-9 0] [-7 0] [-4 -1] [-2 -1] [0 -1] [3 0] [6 1] [7 1] [8 1] [7 2] [10 1] [11 1] [12 1] [13 1] [14 1] [15 1] [16 1] [11 2] [12 2] [13 2] [14 2] [15 2] [16 2] [12 3] [13 3] [14 3] [15 3] [13 4] [14 4] ] [set pcolor 63] ] if year = 1961 [ ask patches with [pycor <= -2] [set pcolor 63] ask patches at-points [ [-16 -1] [-14 -1] [-13 -1] [-13 0] [-12 -1] [-11 -1] [-10 -1] [-9 -1] [-8 -1] [-7 -1] [-6 -1] [2 -1] [3 -1] [4 -1] [5 -1] [6 -1] [7 -1] [8 -1] [9 -1] [10 -1] [11 -1] [12 -1] [13 -1] [14 -1] [15 -1] [16 -1] [5 0] [6 0] [7 0] [8 0] [9 0] [10 0] [11 0] [12 0] [13 0] [14 0] [15 0] [16 0] [-11 0] [-9 0] [-7 0] [-4 -1] [-2 -1] [0 -1] [3 0] [6 1] [7 1] [8 1] [7 2] [10 1] [11 1] [12 1] [13 1] [14 1] [15 1] [16 1] [11 2] [12 2] [13 2] [14 2] [15 2] [16 2] [12 3] [13 3] [14 3] [15 3] [13 4] [14 4] ] [set pcolor 63] ] if year = 1969 [ ask patches with [pycor <= -2] [set pcolor 63] ask patches at-points [ [-16 -1] [-14 -1] [-13 -1] [-13 0] [-12 -1] [-11 -1] [-10 -1] [-9 -1] [-8 -1] [-7 -1] [-6 -1] [2 -1] [3 -1] [4 -1] [5 -1] [6 -1] [7 -1] [8 -1] [9 -1] [10 -1] [11 -1] [12 -1] [13 -1] [14 -1] [15 -1] [16 -1] [5 0] [6 0] [7 0] [8 0] [9 0] [10 0] [11 0] [12 0] [13 0] [14 0] [15 0] [16 0] [-11 0] [-9 0] [-7 0] [-4 -1] [-2 -1] [0 -1] [3 0] [6 1] [7 1] [8 1] [7 2] [10 1] [11 1] [12 1] [13 1] [14 1] [15 1] [16 1] [11 2] [12 2] [13 2] [14 2] [15 2] [16 2] [12 3] [13 3] [14 3] [15 3] [13 4] [14 4] ] [set pcolor 63] ] ;; fence created along northern side of the Levuvha River in 1961 represented by black patches if year = 1961 [ ask patches at-points [ [-16 1] [-15 0] [ -14 1] [-13 2] [-12 1] [-11 2] [-10 1] [-9 2] [-8 1] [-7 2] [-6 1] [-5 0] [-4 1] [-3 0] [-2 1] [-1 0] [0 1] [1 0] [2 1] [3 2] [4 1] [5 2] [6 3] [7 4] [8 3] [9 2] [10 3] [11 4] [12 5] ] [set pcolor black] ] if year = 1969 [ ask patches at-points [ [-16 1] [-15 0] [ -14 1] [-13 2] [-12 1] [-11 2] [-10 1] [-9 2] [-8 1] [-7 2] [-6 1] [-5 0] [-4 1] [-3 0] [-2 1] [-1 0] [0 1] [1 0] [2 1] [3 2] [4 1] [5 2] [6 3] [7 4] [8 3] [9 2] [10 3] [11 4] [12 5] ] [set pcolor black] ] end to setup-turtles ;; makuleke setup create-makuleke initial-makuleke [ set color 3 set size 1.5 set shape "person farmer" if year = 1800 [ move-to one-of patches with [pcolor = 65] ] if year = 1903 [ move-to one-of patches with [pcolor = 65] ] if year = 1933 [ move-to one-of patches with [pcolor = 26] ] if year = 1961 [ move-to one-of patches with [pcolor = 26] ] if year = 1969 [ move-to one-of patches with [pcolor = 26] ] ] ;; cattle setup if year = 1800 [ create-cattle 20 [ set shape "cow" set color brown set size 1.5 move-to one-of patches with [pcolor = 65] ] ] if year = 1903 [ create-cattle 15 [ set shape "cow" set color brown set size 1.5 move-to one-of patches with [pcolor = 65] ] ] if year = 1933 [ create-cattle 10 [ set shape "cow" set color brown set size 1.5 move-to one-of patches with [pcolor = 26] ] ] ;; rangers setup if year = 1903 [ create-rangers initial-rangers [ set color 3 set size 1.5 set shape "person soldier" move-to one-of patches with [pcolor = 63] ] ] if year = 1933 [ create-rangers initial-rangers [ set color 3 set size 1.5 set shape "person soldier" move-to one-of patches with [pcolor = 63] ] ] if year = 1961 [ create-rangers initial-rangers [ set color 3 set size 1.5 set shape "person soldier" move-to one-of patches with [pcolor = 63] ] ] if year = 1969 [ create-rangers initial-rangers [ set color 3 set size 1.5 set shape "person soldier" move-to one-of patches with [pcolor = 63] ] ] ;; elephants setup if year = 1903 [ create-elephants 7 [ set shape "mammoth" set color gray set size 1.5 move-to one-of patches with [pcolor = 63] ] ] if year = 1933 [ create-elephants 7 [ set shape "mammoth" set color gray set size 1.5 move-to one-of patches with [pcolor = 63] ] ] if year = 1961 [ create-elephants 7 [ set shape "mammoth" set color gray set size 1.5 move-to one-of patches with [pcolor = 63] ] ] if year = 1969 [ create-elephants 7 [ set shape "mammoth" set color gray set size 1.5 move-to one-of patches with [pcolor = 63] ] ] end to go ask turtles [ move-makuleke move-cattle move-elephants move-rangers patrol ] tick end ;; rules for makuleke movement to move-makuleke if year = 1800 [ ask makuleke [ rt random 50 lt random 50 ;; Check if there is a patch with color 65 in radius 1 without a turtle. let target-patch one-of patches with [pcolor = 65] in-radius 1 with [not any? turtles-here] ;; Only move to the target patch if it exists. if target-patch != nobody [ move-to target-patch ] ] ] if year = 1903 [ ask makuleke [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 65] with [not any? turtles-here] if not any? rangers in-radius 4 [ move-to one-of patches with [pcolor = 63] with [not any? turtles-here] ] if any? rangers in-radius 4 [ move-to one-of patches with [pcolor = 65] with [not any? turtles-here] ] ] ] if year = 1933 [ ask makuleke [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 26] with [not any? turtles-here] if not any? rangers in-radius 4 [ move-to one-of patches with [pcolor = 63] with [not any? turtles-here] ] if any? rangers in-radius 4 [ move-to one-of patches with [pcolor = 26] with [not any? turtles-here] ] ] ] if year = 1961 [ ask makuleke [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 26] with [not any? turtles-here] if not any? rangers in-radius 4 [ move-to one-of patches with [pcolor = 63] with [not any? turtles-here] ] if any? rangers in-radius 4 [ move-to one-of patches with [pcolor = 26] with [not any? turtles-here] ] ] ] if year = 1969 [ ifelse any? patches with [pcolor = 26] [ ; Makuleke will move to patches with pcolor 26 as long as there are some ask makuleke [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 26] with [not any? turtles-here] ] ] [ ; Once there are no more patches with pcolor 26, makuleke will move to patches with pcolor 63 ask makuleke [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 63] in-radius 5 with [not any? turtles-here] ] ] ] end ;; rules for cattle movmement to move-cattle if year = 1800 [ ask cattle [ rt random 50 lt random 50 let target-patch one-of patches with [pcolor = 65] with [not any? turtles-here] ifelse any? other turtles-on target-patch [ ; If the target patch is already occupied, find a nearby unoccupied patch within a certain radius move-to one-of patches in-radius 2 with [not any? turtles-here] ] [ move-to target-patch ] ] ] if year = 1903 [ ask cattle [ rt random 50 lt random 50 let target-patch one-of patches with [pcolor = 65] with [not any? turtles-here] ifelse any? other turtles-on target-patch [ ; If the target patch is already occupied, find a nearby unoccupied patch within a certain radius move-to one-of patches in-radius 2 with [not any? turtles-here] ] [ move-to target-patch ] ] ] if year = 1933 [ ask cattle [ rt random 50 lt random 50 let target-patch one-of patches with [pcolor = 26] with [not any? turtles-here] ifelse any? other turtles-on target-patch [ ; If the target patch is already occupied, find a nearby unoccupied patch within a certain radius move-to one-of patches in-radius 2 with [not any? turtles-here] ] [ move-to target-patch ] ] ] end ;; rules for elephant movement to move-elephants if year = 1903 [ rt random 50 lt random 50 ask elephants [ let target-patch one-of patches with [pcolor = 63] with [not any? turtles-here] ; Check if the target patch is already occupied by another agent ifelse not any? other turtles-on target-patch [ ; If the target patch is unoccupied, move there move-to target-patch ] [ ; If the target patch is occupied, find a nearby unoccupied patch let unoccupied-patches patches in-radius 1 with [not any? turtles-here] ifelse any? unoccupied-patches [ move-to one-of unoccupied-patches ] [ ; If no unoccupied patches are found nearby, stay in the current patch move-to patch-here ] ] ] ] if year = 1933 [ ask elephants [ rt random 50 lt random 50 let target-patch one-of patches with [pcolor = 63] with [not any? turtles-here] ; Check if the target patch is already occupied by another agent ifelse not any? other turtles-on target-patch [ ; If the target patch is unoccupied, move there move-to target-patch ] [ ; If the target patch is occupied, find a nearby unoccupied patch let unoccupied-patches patches in-radius 1 with [not any? turtles-here] ifelse any? unoccupied-patches [ move-to one-of unoccupied-patches ] [ ; If no unoccupied patches are found nearby, stay in the current patch move-to patch-here ] ] ] ] if year = 1961 [ ask elephants [ rt random 50 lt random 50 let target-patch one-of patches with [pcolor = 63] with [not any? turtles-here] ; Check if the target patch is already occupied by another agent ifelse not any? other turtles-on target-patch [ ; If the target patch is unoccupied, move there move-to target-patch ] [ ; If the target patch is occupied, find a nearby unoccupied patch let unoccupied-patches patches in-radius 1 with [not any? turtles-here] ifelse any? unoccupied-patches [ move-to one-of unoccupied-patches ] [ ; If no unoccupied patches are found nearby, stay in the current patch move-to patch-here ] ] ] ] if year = 1969 [ ask elephants [ rt random 50 lt random 50 let target-patch one-of patches with [pcolor = 63] with [not any? turtles-here] ; Check if the target patch is already occupied by another agent ifelse not any? other turtles-on target-patch [ ; If the target patch is unoccupied, move there move-to target-patch ] [ ; If the target patch is occupied, find a nearby unoccupied patch let unoccupied-patches patches in-radius 1 with [not any? turtles-here] ifelse any? unoccupied-patches [ move-to one-of unoccupied-patches ] [ ; If no unoccupied patches are found nearby, stay in the current patch move-to patch-here ] ] ] ] end ;; rules for ranger movement to move-rangers if year = 1903 [ ask rangers [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 63] with [not any? rangers-here] ] ] if year = 1933 [ ask rangers [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 63] with [not any? rangers-here] ] ] if year = 1961 [ ask rangers [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 63] with [not any? rangers-here] ] ] if year = 1969 [ ifelse any? patches with [pcolor = 26] [ ; Rangers will move to patches with pcolor 26 as long as there are some ask rangers [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 26] with [not any? rangers-here] ] ] [ ; Once there are no more patches with pcolor 26, rangers will move to patches with pcolor 63 ask rangers [ rt random 50 lt random 50 move-to one-of patches with [pcolor = 63] with [not any? rangers-here] ] ] ] end ;; rules for rangers when patrolling to patrol if year = 1903 [ ask rangers [ if any? makuleke-here [ if (pcolor = 63) [ ; Define the probability of conflict during patrol (e.g., 0.1 for 10% probability) let conflict-probability 0.005 ifelse random-float 1.0 < conflict-probability [ ; Engage in conflict with makuleke let target one-of makuleke with [distance myself <= 2] ifelse random-float 1.0 < 0.01 [ ask target [die] set conflicts (conflicts + 1) ] [ ; Don't kill the Makuleke, just change their color ] set pcolor red ] [ ; Continue with patrol behavior move-to one-of patches with [pcolor = 63] with [not any? turtles-here] ] ] ] ] ] if year = 1933 [ ask rangers [ if any? makuleke-here [ if (pcolor = 63) [ ; Define the probability of conflict during patrol (e.g., 0.1 for 10% probability) let conflict-probability 0.01 ifelse random-float 1.0 < conflict-probability [ ; Engage in conflict with makuleke let target one-of makuleke with [distance myself <= 2] ifelse random-float 1.0 < 0.03 [ ask target [die] set conflicts (conflicts + 1) ] [ ; Don't kill the Makuleke, just change their color ] set pcolor red ] [ ; Continue with patrol behavior move-to one-of patches with [pcolor = 63] with [not any? turtles-here] ] ] ] ] ] if year = 1961 [ ask rangers [ if any? makuleke-here [ if (pcolor = 63) [ ; Define the probability of conflict during patrol (e.g., 0.1 for 10% probability) let conflict-probability 0.06 ifelse random-float 1.0 < conflict-probability [ ; Engage in conflict with makuleke let target one-of makuleke with [distance myself <= 2] ifelse random-float 1.0 < 0.09 [ ask target [die] set conflicts (conflicts + 1) ] [ ; Don't kill the Makuleke, just change their color ] set pcolor red ] [ ; Continue with patrol behavior move-to one-of patches with [pcolor = 63] with [not any? turtles-here] ] ] ] ] ] if year = 1969 [ ask rangers [ ; Check for the presence of makuleke within a certain radius let nearby-makuleke makuleke in-radius 3 if any? nearby-makuleke [ ; Define the probability of conflict during patrol (e.g., 0.1 for 10% probability) let conflict-probability 1.0 ifelse random-float 1.0 < conflict-probability [ ; Engage in conflict with a nearby makuleke let target one-of nearby-makuleke ask target [die] set conflicts (conflicts + 1) set pcolor red ; Ask patches with the color 26 to execute the following block: ask patches with [pcolor = 26] [ ; Set the color of these patches to 63. set pcolor 63 ] ] [ ; Continue with patrol behavior move-to one-of patches with [pcolor = 63] in-radius 3 with [not any? rangers-here] ] ] ] ] end
There is only one version of this model, created over 1 year ago by Taylor Ouellette.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Makuleke Land Dispossession.png | preview | Preview for 'Makuleke Land Dispossession' | over 1 year ago, by Taylor Ouellette | Download |
This model does not have any ancestors.
This model does not have any descendants.