RockPaperScissors

No preview image

1 collaborator

Default-person Peter Winter (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 4.0.4 • Viewed 608 times • Downloaded 30 times • Run 4 times
Download the 'RockPaperScissors' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

Rock-Paper-Scissors

This model uses three species of turtles (rocks, papers, and scissors) to examine feedback loops and population stability.

HOW IT WORKS

The three species move around the world randomly. Every time thy move into the same space as their victim, they kill it.

Rock kills scissors.

Scissors kills paper.

Paper kills rock.

There are two ways to replentish the populations: War-Hatching and Input-Feed

War-Hatching occurs when one species kills another. If a rock kills a scissor, then ther is a chance that another rock is created in that patch. The same is true for when a scissor kills a paper, or a paper kills a rock.

The Input-Feed adds a certain number of new

The Feed-rate adds the same number rocks, paper, and scissors to the world in random locations every turn.

The Additional-Rocks adds rocks to the world in random locations every turn. No paper or scissors are created.

HOW TO USE IT

Setup- this button randomly places a specified number of rocks, papers, and scissors throughout the world.

The Rock-Number, Scissor-Number, and Paper-Number sliders determine how many of each are spawned when the Setup button is pressed.

The Go button starts running the model.

War-Hatching:

The War-Hatch switch allows you to turn War-Hatching on or off. War-Hatching creates a

Input-Feed:

THINGS TO NOTICE

If there is a sufficient number of each species and every species has a way to replentish itself, the population dynamics become stable.

For scissors or paper to replentish themselves, either Feed-Rate or War-Hatching must be turned on.

THINGS TO TRY

Changing the Feed-Rate and whatching where the populations stabilize.

Turn both the Feed-Rate and Additional-Rocks and see how it affects the population distribution.

After a sufficiently large populaiton has built up. Turn on both Additional-Rocks and War-Hatching and then turn off the Feed-Rate. What happens to the population dynamics? What happens if you adjust the Chance-of-War-Hatch from large to small? What is the smallest Chance-of-War-Hatch that can maintain a stable population of scissors?

(Note: if you turn off feed rate before turning on both Additional-Rocks and War-Hatching, the poplulation may crash. The population may also crash if you don't have a high enough initial population of scissors for your current Chance-of-War-Hatch)

EXTENDING THE MODEL

This section could give some ideas of things to add or change in the procedures tab to make the model more complicated, detailed, accurate, etc.

NETLOGO FEATURES

This section could point out any especially interesting or unusual features of NetLogo that the model makes use of, particularly in the Procedures tab. It might also point out places where workarounds were needed because of missing features.

RELATED MODELS

This section could give the names of models in the NetLogo Models Library or elsewhere which are of related interest.

CREDITS AND REFERENCES

Written by Peter Winter April 19.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [rocks rock]
breed [scissors scissor]
breed [papers paper]

to setup
  clear-all
  create-rocks Rock-Number [set color brown setxy random-pxcor random-pycor]
  create-scissors Scissor-Number [set color red setxy random-pxcor random-pycor]
  create-papers Paper-Number [set color grey setxy random-pxcor random-pycor]
  update-plot
end 

to go
  ask turtles    [left -30 + random 60 jump 1]
  combat
  influx
 
  update-plot
end 

to influx
  create-rocks Feed-Rate [set color brown setxy random-pxcor random-pycor]
  create-scissors Feed-Rate [set color orange setxy random-pxcor random-pycor]
  create-papers Feed-Rate [set color white setxy random-pxcor random-pycor]
  create-rocks Additional-Rocks [set color brown setxy random-pxcor random-pycor]
end 

to combat
  ask rocks
  [
      if one-of scissors-here != nobody 
      [
      ask one-of scissors-here [die]
      if random 100 < Chance-of-War-Hatch
        [
          hatch-rocks 1
        ]
      ]
  ]
  ask papers
  [
      if one-of rocks-here != nobody 
      [
      ask one-of rocks-here [die]
      if random 100 < Chance-of-War-Hatch
        [
          hatch-papers 1
        ]
      ]
  ]
  ask scissors
  [
      if one-of papers-here != nobody 
      [
      ask one-of papers-here [die]
      if random 100 < Chance-of-War-Hatch
        [
          hatch-scissors 1
        ]
      ]
  ]
end 

to update-plot
  set-current-plot "plot"
  set-current-plot-pen "rock"
  plot count rocks
  set-current-plot-pen "paper"
  plot count papers
  set-current-plot-pen "scissors"
  plot count scissors
end 

to Refresh-Plot
  set-current-plot "plot"
  clear-plot
end 

There is only one version of this model, created almost 14 years ago by Peter Winter.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.