Opponent
What it expects
A flat meter means the opponent has learned nothing about you — which is all a Nash opponent can ever show.
Lab
Every number here is computed in your browser when you press the button. Each matchup is run as many independent matches; the interval is a 95% confidence interval over matches, not over rounds, because rounds inside one match are not independent while both sides are still learning.
| Row player | Against | Gain per round | 95% CI | Verdict |
|---|
The equilibrium, solved
The equilibrium is not asserted here, it is computed: the payoff matrix is handed to a simplex linear program, and the solution is then certified by a separate minimax check that never touches the solver.
Press “Solve it”.
A population that cycles
Six players, randomly paired every round, each shifting or repeating according only to whether their own last round was a win, a tie or a loss. The social state is the count of Rocks, Papers and Scissors in the group; the triangle is the space of those counts, with the equilibrium at the centre.
Press “Run 400 rounds”.
“It’s pure chance, so nothing beats playing randomly”
Half of that is a theorem. The other half is false, and the half that is false is the half people act on.
What is actually true
Hand the payoff matrix to a linear program and the equilibrium comes back uniform — a third each — with value equal to the tie payoff, for every winner’s payoff a we tried. The certificate is stronger than the solution: against a uniform opponent every throw earns exactly zero, to machine zero, so no strategy whatsoever gains against it. That is the sense in which random is unbeatable, and it is airtight.
The identical algebra runs the other way and nobody quotes it. Because every throw earns exactly zero against uniform, uniform earns exactly zero against everything. Randomness does not win. It declines to play.
What that costs, measured
Against a fixed opponent mix set to the throw shares actually measured from 354 laboratory players — 36% Rock, 33% Paper, 32% Scissors — here is what different players earn per round. Gains are wins minus losses divided by rounds; intervals are 95% over independent matches.
| Player | Against | Gain per round | Reading |
|---|---|---|---|
| Nash (uniform) | the human mix | nothing, to within noise | |
| Nash (uniform) | a player who always throws Rock | still nothing | |
| Always Paper — no memory at all | the human mix | strictly positive | |
| Frequency hunter | the human mix | positive, and it had to learn it | |
| Five-model ensemble | the human mix | positive, and pays for its generality | |
| Five-model ensemble | Nash (uniform) | nothing, as it must be |
So what decides it is not whether the game is chance. It is whether your opponent is random. A strategy with no memory, no model and no cleverness — throwing Paper every single round — beats the measured human mix by per round, and the exact arithmetic says it should be . A Nash player, playing perfectly, collects none of it. Randomness buys safety and forfeits every point on the table. Against a real opponent that is a price, not a strategy.
Against opponents with an actual rule the gap is not subtle. The ensemble takes per round off a player who cycles R–P–S, and off a win-stay/lose-shift player. Nash takes zero off both.
The mechanism no fixed strategy can solve for
There is no best strategy here. The optimum is a function of the opponent, so the object being computed is a prediction about a person. The model this app leans on hardest is the one Wang, Xu and Zhou measured in 2014: what a player does next depends on whether their own last round was a win, a tie or a loss. Winners repeat; losers shift.
That it is the right model and not merely a model is visible in a control. Against a win-stay/lose-shift opponent the response hunter earns per round. The frequency hunter, facing the very same opponent, earns — it loses, badly, because counting throws is blind to a rule that is conditional. A model that is wrong about the mechanism is worse than no model at all.
Reproducing the 2014 study, and one disagreement
The paper gives five sets of response parameters with the cycling frequency and payoff it computes for each. Those numbers were not fitted here by anything, which makes them a held-out test of an independent reimplementation of the model: a 28-state Markov chain over the population’s social state, cross-checked against a simulation that shares no code with it.
| Set | Published f | This build | Published gain | This build |
|---|
The payoff reproduces for all five sets. The cycling frequency reproduces for four. For set 2 this build gets −0.007 where the paper prints +0.007: the magnitude agrees to the printed precision, the direction does not. Two independent methods here agree with each other — the exact chain and a Monte Carlo over millions of rounds — and the paper’s own stated rules for which parameters push which way agree with them too, since that set has T− = 0.154 against T+ = 0.048 and W0 just below L0, both of which the paper says drive the cycle clockwise. The most likely account is a sign lost in typesetting a list of numbers printed to three decimals. It is recorded here as an unresolved disagreement, not as a correction, because only the authors can settle it.
Two smaller things fell out of the same exercise, both the same shape. The paper’s published throw shares (0.36, 0.33, 0.32) sum to 1.01, and two of the five response parameter sets have a triple summing to 0.999. Fed in as printed, the first quietly biases every measurement made against the human mix and the second makes the Markov chain lose 0.24% of its probability mass per row while still reporting a converged steady state. Rounded probability vectors are not probability vectors.
How to play
Rock blunts Scissors. Scissors cut Paper. Paper wraps Rock. Same throw is a tie. Press a throw, or use keys 1, 2, 3. Pick an opponent on the Play tab; the meter beside it shows what that opponent currently expects you to do.
The names
The earliest known mention is in the Ming-dynasty book Wuzazu by Xie Zhaozhe (fl. c. 1600), who dates the game back to the Han dynasty and calls it shoushiling. In Japan it joins the family of sansukumi-ken, “fist games of the three who are afraid of one another”: the earliest was mushi-ken, where frog beats slug beats snake beats frog. The three-sign form is jan-ken, standardised between the Edo and Meiji periods. It is gawi-bawi-bo in Korea, jak-en-poy or bato-bato-pick in the Philippines, and the order of the three words differs from country to country.
One name is worth flagging. “Roshambo” is very widely explained as a tribute to Count Rochambeau, who is said to have played the game during the American Revolutionary War. That story is apocryphal — the game does not reach the United States until after 1910, well over a century later. The suggestions that survive scrutiny are a phonetic drift from jan-ken-pon, or the Rochambeau statue in Washington DC. It is the single most repeated claim about the game’s English name and it does not hold.
What this is, and what it is not
Rock Paper Scissors is a folk game in the public domain; there is no author or publisher to credit for the game itself, and this build claims none. What is credited, and what this app is actually built on, is the experiment it takes its opponent model from:
Zhijian Wang, Bin Xu and Hai-Jun Zhou, Social cycling and conditional responses in the Rock-Paper-Scissors game, arXiv:1404.5199v1 [physics.soc-ph], 21 April 2014; later published in Scientific Reports 4, 5830 (2014). 360 students at Zhejiang University, 60 populations of six, 300 rounds each.
This is an independent reimplementation. Nothing is ported, decompiled or copied. Specifically, what differs:
- The study ran six humans in a randomly repaired population; this app is one human against one program.
- The study’s response parameters are published only as bar charts, so no numeric fit of them is reproduced here. The five parameter sets used are the ones the paper prints as numbers, which are its own sampled optima, not its measured human values.
- Scores here are wins minus losses per round. The paper’s payoffs are parameterised by a, which the Lab tab exposes for the equilibrium solver.
- All opponents other than the uniform one and the conditional-response one are original designs written for this app, not reproductions of any published program.
- All artwork is drawn by this app in code.
- No five-throw variant is included. The well-known lizard-and-Spock expansion is a named third-party work and is deliberately absent.
Credits and licence
Historical and naming detail is drawn from the Wikipedia article “Rock paper scissors”, including its own note that the Rochambeau attribution is apocryphal. Full detail is in CREDITS.txt; the licence is in LICENSE.txt.
This page runs entirely in your browser. It sends nothing anywhere, calls no model, and costs nothing to play. Your match state is kept in this browser only.