Makuleke Land Dispossession
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model explores the relationship between the dispossession of land from the Makuleke community and the development of Kruger National Park between the 1800s and 1969. The model investigates the role that conflict between park rangers and Makuleke community members plays within the broader context of land dispossession and the expansion of Kruger National Park. This model specifically focuses on the 'Makuleke Region' or 'Pafuri Triangle' within the upper northernmost part of what is now Kruger National Park in South Africa. This region sits at the border of Zimbabwe, Mozambique, and South Africa.
The lighter green patches represent land "owned" by the Makuleke community and therefore, land that the Makuleke have ancestral rights to.
The darker green patches represent land under the control and management of the National Parks Department. This signifies land converted to protected area, in which the National Parks Department has asserted rights over.
The orange patches represent land where rights over it are contentious.
Makuleke people are represented by farmer turtle shapes, as historically, the Makuleke community practised various forms of subsistence farming and hunting.
Park rangers are represented by soldier turtle shapes, as historically, rangers in Kruger National Park were given paramilitary training and conducted armed patrols to combat illegal hunting.
HOW IT WORKS
Makuleke and ranger agents are assigned patches ("Makuleke-patches" and "rangers-patches") based on patch color, which is used to inform their rules of movement. Makuleke movement is influenced by the availability of specific patches based on the year and the presence of rangers. They exhibit a preference for certain patches but may adapt their movement based on the threat posed by rangers.
Rangers, on the other hand, consistently move to patches representing protected areas and avoid patches already occupied by other rangers. Rangers also enact patrol behavior, which includes checking for the presence of Makuleke turtles in the vicinity and potentially engaging in conflicts with them. The rules for conflict and patrol vary depending on the specified year.
Overview of patrol behavior:
Rangers check for the presence of Makuleke turtles in the same patch where they are located, and if the patch color is 63 (representing protected areas), a probability of conflict (conflict-probability) is defined (increasing between each year)
If a conflict occurs (random-float is less than the conflict probability), the ranger randomly selects a nearby Makuleke turtle (within a distance of 2).
If another random probability check is successful, the selected Makuleke turtle dies (ask target [die]), and the conflicts counter is incremented.
If the second probability check fails, the Makuleke's color is changed to red (set pcolor red), but the Makuleke is not killed.
If no conflict occurs, the ranger continues with patrol behavior by moving to a patch with a color of 63 (protected area) that is unoccupied.
As the years progress, the conflict probability is icnreased, along with the probability that the conflict encounter leads to the removal, arrest, or death of a Makuleke community member (represeted by the “ask target [die]” command).
HOW TO USE IT
Year Chooser: Adjust the slider to choose the simulation year.
Setup Button: Initializes the simulation based on the selected year.
Go Button: Starts the simulation.
Patches: Represent the landscape, with different colors indicating distinct regions.
Makuleke, Cattle, Elephants, Rangers: Agents represented by different shapes and colors on the landscape.
THINGS TO NOTICE
Notice the variations in land access, the degree of conflict, and shifts in the Makuleke population across different time periods. Investigate the fate of cattle post the year 1933. The absence of cattle after 1933 can be attributed to the historical prohibition imposed by the National Parks Department in 1938, reportedly linked to an outbreak of foot and mouth disease.
Observe how the expansion of the boundaries of the park affects the Makuleke community's access to land and ability to move without experiencing conflict with rangers.
THINGS TO TRY
See what happens when the ratio between ranger and Makuleke populations is closer and farther apart. How does the mobility of the Makuleke community change in relation to the number of rangers there are?
EXTENDING THE MODEL
Measuring Resource Access: Integrate a plotter that measures the Makuleke community's resource access over time. Explore how resource access changes in relation to the expansion of the park, the creation of conservation borders, the presence of rangers, and enforcement of rules governing the Makuleke community's movement and livelihood practices.
Enhanced Conflict Resolution: Develop more sophisticated conflict resolution rules between Makuleke people and rangers.
Adaptive Makuleke People: Make Makuleke behavior adaptive to changing conditions, including previous conflict areas, to avoid conflict in the future through adaptive movements.
Adaptive Rangers: Make ranger behavior adaptive to changing conditions, influencing their patrol areas based on conflicts or agent movements.
Introduce livelihood changes: As land dispossession and displacement occurs, some Makuleke people begin working for the park as rangers.
NETLOGO FEATURES
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
RELATED MODELS
CREDITS AND REFERENCES
Wilensky, U., & Rand, W. (2015). An introduction to agent-based modeling: Modeling natural, social and engineered complex systems with NetLogo. Cambridge, MA: MIT Press.
Comments and Questions
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 almost 2 years ago by Taylor Ouellette.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Makuleke Land Dispossession.png | preview | Preview for 'Makuleke Land Dispossession' | almost 2 years ago, by Taylor Ouellette | Download |
This model does not have any ancestors.
This model does not have any descendants.