Research
How to win at rock paper scissors
Rock paper scissors looks like a coin toss. It is not, because you are not playing the game — you are playing a person, and people are bad at being random in ways that have been measured, published and turned into algorithms that beat them.
Summary
Against a perfectly random opponent, nothing you do matters: every strategy wins exactly one third of the time. Against a human, three exploitable regularities are well documented — a biased opening throw, a strong tendency to stay after a win and shift after a loss, and the resulting cyclic drift through rock → paper → scissors. Machine players have exploited these since the late 1990s by predicting the next throw from recent history and switching between several predictors based on which is currently working.
This page sets out the evidence, the practical strategy that falls out of it, and how we built an opponent in our game that plays this way — one that gets harder the longer you play it, which turns out to be the difference between a strong opponent and a hustler.
1. The theory, and why it is a dead end
Rock paper scissors has one Nash equilibrium: throw each option one third of the time, at random, ignoring everything your opponent does. It has a property worth being precise about, because it is the whole tension of the game:
Perfect play is unbeatable and unwinnable. If you randomise properly, nobody can get an edge on you — and you cannot get an edge on anybody, including a complete beginner throwing rock every single time.
So the equilibrium is the correct answer to “how do I avoid being exploited?” and completely useless as an answer to “how do I win?”. Every practical strategy below involves deliberately leaving the equilibrium, which means accepting that a strong opponent could in principle exploit you back. That trade is the game.
There is also a practical obstacle: humans cannot generate random sequences. Asked to be unpredictable, people produce sequences with too few repeats, too many alternations, and a drift that can be detected within a few dozen throws. You cannot simply decide to play the equilibrium.
2. What people actually do
2.1 The opening throw is biased
The first throw of a match is the most studied and the easiest to exploit, because there is no history for either player to reason from — so habit decides it. Figures published by the World Rock Paper Scissors Association put the opening distribution at:1
| Throw | Frequency | vs. one third |
|---|---|---|
| Rock | 35.4% | over-thrown |
| Scissors | 35.0% | over-thrown |
| Paper | 29.6% | under-thrown |
The bias is reported to be strongest among inexperienced players and among men, and it is usually explained as rock feeling like the aggressive, strong-looking choice. Whatever the cause, the practical consequence is the single most repeated piece of advice in the game, and it has real arithmetic behind it:
Open with paper. It beats the most over-thrown move and loses only to the least-thrown one.
⚠ These figures are published by a hobbyist association rather than in a peer-reviewed journal. Treat the direction of the bias as well supported and the exact decimals as indicative.
2.2 Win-stay, lose-shift
The strongest experimental result comes from a laboratory study by Wang, Xu and Zhou, published in Scientific Reports in 2014.2 Players were paired at random, repeatedly, over many rounds. What the authors found is that behaviour is not random at all but conditional on the previous round’s result:
- After a win, players tend to repeat the throw that just won.
- After a loss, players tend to shift — and not at random, but in a consistent direction around the cycle: rock → paper → scissors → rock.
- After a draw, behaviour is likewise conditional rather than independent.
This is the pattern game theory calls a conditional response, and it is usually shortened to win-stay, lose-shift.
2.3 The population cycles
The striking part of that study is what the individual behaviour adds up to. Because everybody is shifting in the same direction after a loss, the whole population drifts around the cycle together — the authors observed “population-level cyclic motions” whose direction and frequency were insensitive to the payoff structure. That collective behaviour contradicts the Nash equilibrium prediction, and the authors reproduce it quantitatively with a model of win-lose-tie conditional response carrying no adjustable parameters.2
A note on a figure you will see quoted. Press coverage of this study often says the conditional-response strategy beats the Nash mixed strategy by around 10%. That number is not in the paper’s abstract, which says only that the strategy “may offer higher payoffs to individual players in comparison with the NE mixed strategy”. We have quoted the paper rather than the headline.
3. How machines beat people at it
None of this is new to programmers. The International RoShamBo Programming Competitions of the late 1990s pitted rock-paper-scissors bots against each other, and the winner of the first was Iocaine Powder, by Dan Egnor.3 Its design is still the template for essentially every serious RPS engine, and it has two halves.
A set of predictors. Frequency analysis (what do they throw most?), history matching (when this exact recent sequence happened before, what came next?), and a random baseline. Each predictor guesses the opponent’s next throw.
A meta-strategy that chooses between them. This is the part people miss. Each predictor is expanded into several strategies — play the counter to the prediction; play the counter to that, on the theory that the opponent has anticipated you; and so on up the ladder of “he knows that I know that he knows”. The engine then picks whichever strategy has actually been working lately, and drops the ones that are losing.
The insight worth taking away: the winning move was not a better predictor. It was tracking which predictor is currently right and switching. A human who changes their pattern halfway through beats a single fixed model, and beats nothing that is watching its own hit rate.
4. What to actually do
Condensing the above into advice you can use in a pub:
- Open with paper against someone you have not played before. It beats the over-thrown move.
- If they just won, expect the same throw again. Play the counter to it.
- If they just lost, expect them to move forward round the cycle — a beaten rock tends to become paper. Counter the throw you expect, not the one they just made.
- Watch for the triple. People are very reluctant to throw the same thing three times running, so after two identical throws the third is much more likely to change.
- Do not build a pattern of your own. The moment you have one, a good opponent is doing all of the above to you.
- If you are clearly outclassed, go random — genuinely random, by some external means. You give up winning, but you cannot be read, and you pull the match back to an even third-each.
That last point is the honest summary of the whole field. Strategy only exists because your opponent has one.
5. How we built an opponent that plays this way
Oakhaven has a lad called Jack who stands on a street corner and plays passers-by for money. His brain is a small prediction engine, and it is built on exactly the architecture above.4
He keeps four models of you at once, running in parallel:
| Model | What it asks | Size |
|---|---|---|
| Frequency | What do you throw most often, overall? | 3 counters |
| Order 1 | Given your last throw, what comes next? | 9 cells |
| Order 2 | Given your last two throws? | 27 cells |
| Order 3 | Given your last three? | 81 cells |
Those are Markov transition tables — 3, 3² and 3³ possible contexts, each holding a tally for the three things you might do next. Every round he has played against you updates all four.
The important part is the same one Iocaine got right: he keeps a running hit count for each order and uses it to decide which model to believe. A deeper model is more specific but has seen less data, so early in a match the shallow models carry it and the deep ones take over as they earn it. Then he simply plays whatever beats the prediction.
5.1 He gets harder as he goes, and that is the whole trick
This is the part we did not design so much as discover, and it is why he works as a character rather than merely as an algorithm.
All four models start empty. The three transition tables and the frequency counters are zeroed at the start of a match, so in the first few rounds he has nothing to predict from and plays close to random. He is genuinely easy to beat, because there is nothing there yet.
Then he starts getting them right. The order-1 table fills first, then order 2, then order 3, and the hit counters begin trusting the deeper models as they earn it. What the player experiences is an opponent who was a pushover four rounds ago and is now reading them.
That is the hustle, and it is the honest kind. He is not pretending to be bad at the start — he genuinely is bad at the start, because he has not met you yet. The difficulty curve is the learning curve.
The effect on a player is the interesting bit, and it is the one thing on this page we did not predict from theory. People start second-guessing themselves. Having been read three times running, you stop trusting your own choices and start trying to be deliberately unpredictable — which, as section 1 says, humans are bad at, and which produces exactly the kind of over-alternating sequence a Markov model eats. Trying not to have a pattern is itself a pattern.
5.2 Why he also has to be made worse on purpose
Left alone, a predictor like this becomes unpleasant surprisingly quickly. Losing consistently to a street-corner NPC reads as the game cheating, even when it is doing the exact opposite of cheating.
So he also has a stumble: at a set interval he deliberately throws something other than his best guess. One tunable number, and it is the difference between a character you enjoy beating occasionally and a wall.
This is the general lesson and it is not about rock paper scissors. The hard part of an opponent AI is almost never making it strong. It is making it strong in a way that is legible and beatable — where the player can feel themselves being read, can change their behaviour, and can see that working. An opponent that is merely optimal is indistinguishable from one that is random, because both just win.
5.3 The rest of the table
He also negotiates before playing — what happens on a draw, what happens if you do not throw in time — and he carries his own money, tracks your wins, losses and draws against him, and knows whether he is up or down on you overall. The throw itself is on a three-second countdown with a short window at the end in which your choice locks.
6. Limitations
- The opening-throw percentages are association-published, not peer-reviewed. The direction of the bias is well supported; the decimals are indicative.
- The conditional-response result comes from a laboratory setting with random pairwise matching. Whether it transfers cleanly to two friends playing best-of-three in a pub is a reasonable question and not one this page can answer.
- Sample sizes commonly quoted for that study (360 players, 300 rounds) come from press coverage rather than the abstract we read.
- We have not run a formal study of our own opponent. It has been played by the developer and by several of his friends, who report finding it very hard to beat and describe exactly the second-guessing effect above — which is genuine evidence and is why the ramp is described as working. But it is a handful of people, unblinded, with no recorded win rate. We are not going to claim a percentage we have not measured.
References
- World Rock Paper Scissors Association, published statistics on throw frequencies.
- Wang, Z., Xu, B., and Zhou, H.-J. “Social cycling and conditional responses in the Rock-Paper-Scissors game.” Scientific Reports, 4, 5830 (2014).
- Egnor, D. Iocaine Powder. Winner, First International RoShamBo Programming Competition, 1999.
- Project source,
BP_RPSBrain.
Elsewhere
- Making the snooker real — a table measured to the rulebook, and 34 rule claims that turned out to be wrong.
- Proving a roulette wheel is fair — why seven of our eight randomness tests missed both real failure modes.
- Second Chance — the game all of this is for.