Rock/Paper/Scissors

PROJECT GUTS
Rock/Paper/Scissors
Review of CAS concepts (simple rules and unpredictability)
and of StarLogo programming skills (collisions and graphing)
The classic game of Rock Paper Scissors is known to all students. This common experience can
then be used to have students think about Complex Adaptive Systems in terms of
unpredictability which comes from the simple rules of agents. The off-line activity gives students
a different set of rules that will then be programmed into their computer model.
Off-line activity- playing the game
Assign each student a “breed” of rock, paper, or scissors, making the groups as equal
as possible. Have each student choose a classmate at random and play one round of
the game (paper covers rock, rock crushes scissors, scissors cut paper). Have each
student who loses the first round sit down, and the remaining students continue to play
until a single student is left standing. Play again (with students reassigned in equal
groups), and encourage students to choose partners at random. If there are enough
students and the groups are roughly equal, the “winner” should not be predictable.
Change of rules:
If time allows, have students play where the loser of each round changes to the
winner’s breed for the next round. For example, in a round one match between paper
and scissors, the student who was paper (and the student who was scissors) plays
round 2 as scissors. Students may need a pencil and paper to keep track of their
breed in each round. Continue to play until one breed wins (or is in a large majority) –
again, with a large enough group and even beginning groups, the winner should not
be predictable.
Science ConnectionMixed populations of e.coli will exhibit similar strategies found in RPS. So will sideblotched male lizards when establishing dominance.
On-line programming activity – build “Rock/Paper/Scissors” program
First, discuss modeling with students – what are the benefits of creating a computer
model of the game we just played? What can we do with a model that is impossible in
the real world? What are the limits or assumptions behind such a model? This is an
opportunity to review or re-teach the uses of computer models.
1. Start a New Project, blank project.
2. Create 3 agents- Rock, Paper and Scissors- by using the ‘edit breeds’ button at the
top of Spaceland.
PAGE 2
3. In the World, make a setup procedure that creates
30 of each of the agents and sets their shapes, sizes and
colors to something that you like.
*note that some breeds have a different radius size and
therefore might have an advantage when
colliding/interacting with a different breed.
4. Create a “wiggle” procedure (right random
45, left random 45, forward 1), name it
“wiggle”, and place it in the “everyone” page.
Get a “while forever toggled” block from the
Interface drawer, and call the procedure. Test
the program and see that you have about 30
of each breed walking around in Space Land.
5. Using collision blocks (detection drawer) have
the losing breed delete and the winning breed
hatch a new agent (use the “create/do” block
from the agents drawer). Be sure to add the set
color and if appropriate, set size blocks to the
“do” in the create, so the new agent will look like
the original agent. In the exampleseen, when
rock collides with scissors, scissors will die, and rock
will create a new breed that is red.
PAGE 3
Test the program – you should see one breed win, fairly quickly. If it is set up correctly, it
should not be the same breed each time. Note: if one breed is always winning, it might
be a function of the size of the breed. Make sure the breeds are the same size and
relative shape.
Once the program is working, add a data box for each breed by editing widgets.
Label them for each of the breeds.
Choose a ‘data box’ and label it for what you will
track (i.e. paper).
Now add this to the programming code in the setup
button.
PAGE 4
Then add a line graph (same process to edit widgets), and label it. Be sure to name the
graph and you can edit the series to label it and choose a color for the line.
Make sure that the code for the graph is also part of the program.
Save and test your program. Students
should run the model several times, noting
which breed wins and discussing why the
outcome is unpredictable. If time allows,
run an experiment to see if the results are
different with a different initial number of
agents (remember not to create more
than 2000 total agents or the program will
run too slowly). Another possible
experiment is to see whether giving one
breed a greater initial number of agents
will cause it to always win, and what that size advantage must be to get the
desired result.
PAGE 5
Link to completed project:
see http://www.slnova.org/GUTS/projects/9434/ for the full code.
ExtensionsAdd more breeds and competitions (rock, paper, scissors, lizard, spock). See this
video clip for more information:
https://www.youtube.com/watch?v=cSLeBKT7-sM
Research the e.coli competition as well as the side-blotched lizard and see if
you can match the data of researchers.