Once when I was in grad school I noticed an announcement for a lighthearted programming competition for rock-paper-scissors playing agent. The deadline was barely hours away and I was behind on a report for funding or course work, I can't recall now.
As it always happens with me, a non-serious non-essential task suddenly looks attractive over some work I had been procrastinating on.
With no time available to code up a submission from scratch i I just rigged up the zlib compression library to decide the next play. It considered appending the 3 potential completions of the play so far and compressed the sequence. Whichever appended symbol gave the maximum compression was my agent's next move.
It was just a few lines of code and it did surprisingly well. A universal compression library/algorithm that works better for short strings would have performed better. Zlib is an universal compressor but does not converge to the entropy of a sequence very fast.
We we noticed this so we began to say let's play a round and throw paper and lose. 5 minutes later repeat and lose again. THEN, once our drink was almost finished we would say come on one more game and if I win you have to go get me a can from the fridge. He would agree and we would this time throw rock beating him and winning. It works every single time. Lol
Really though, the way to do this is to represent each game as a payout matrix A, which for this category of game will be skew antisymmetric with -1/0/+1 entries. Then you find the null space of that matrix, impose the constraint that probabilities must sum to 1 and individually be >= 0, and that gives you the endpoints of the Nash Equilibria.
Summary: People have tried extending rock-paper-scissors to more than 3 options, with some success. If you allow more pairings to be ties, this uncovers a rich garden of different game dynamics and strategies.
As far as a battle of wits go, its hard to find a more balanced game than rock-paper-scissors. Its simplicity means that all strategy is scraped away, and all that’s left is to cold read the other person’s soul. Come, stare into my eyes, and I’ll see the weapon you’ll choose. Your heart says to crush, your mind says to cut, and your hands yearn to smother. I know the future already, and I’ve lined up the perfect parry. Are you ready? Best 2 out of 3, and we’ll go on 3-2-1-shoot. Oh by the way – I always go rock.
What if we wanted more than 3 options?
This is explored in depth in this wonderful video released yesterday by Fractal Philosophy, which inspired this post. We are going to use that as a jumping off point, and then go further.
If we want to have a game where every weapon is a viable option, then we can’t bump RPS’s 3 to 4. We have to jump all the way to 5 choices with the game Rock – Paper – Scissors – Lizard – Spock. Each weapon beats two others and loses to two. The big downside of this game is complexity – I’m not a Trekkie and have no idea how Spock and Lizard are supposed to relate to the others. The upside is that ties are less common. For RPS 1/3 of all games will be a tie, while for RPSLS this drops to 1/5 – good if you want more decisive outcomes.
Both these games are formally called “paradoxical tournaments”. Tournament means that it’s a game without ties, and paradoxical means that every move can be countered. The video above ends up at the smallest “two-paradoxical tournament”, which means that every pair of moves has a common counter. This doesn’t happen until you get to n=7 moves, but ensures that a game built on these RPS dynamics will have a wide range of viable strategies.
But something’s bugging me. The definition above says there aren’t any ties, but two people can still both throw paper. Ties are already part of the game – why are we throwing them out? Let’s allow them, relaxing the tournament constraint to “weak tournaments.” To keep things interesting we’ll require the game to be connected, so that the chain of wins and losses reaches every option and you don’t have a split game of RPS floating separately from the rest of the game. We’ll draw some graphs, and each node will be labeled with the number of matchups it wins, ties, and loses: W-T-L.
The first graph we already know about, and the last “ring” structure is boring. Both are regular games, where each choice has the same number of wins and loss connections going in and out. But the middle ones are interesting! By allowing ties, we have allowed materially different strategies. Either you can go for a safe “tanky” 1-2-1 strategy that only loses to one but also only beats one, or you can go for a “glass cannon” 2-0-2 strategy that packs a punch against two others but also has more weaknesses. Since each node has the same number of winning and losing matchups, each still has the same odds of winning and we call this a balanced game.
Let’s give that second game an elemental theme. I came up with Fire – Water – Grass – Clay – Sand. Water and fire are the two powerful but vulnerable 2-0-2 choices. Water puts out fire and covers sand. Fire bakes clay and burns grass. The three 1-2-1 earthy choices all tie against each other, and beat / lose to one of the powerful ones. Grass absorbs water, clay contains water, and sand smothers fire. I’m not sure how you would translate these into hand signals, but it’s easy to remember and has some interesting dynamics!
At n=5, the four above are the only balanced games available. But at n=6 things get more interesting. There are 16 balanced games, 5 of which are regular. Here’s a look at some of them:
Each node in a balanced game has the same odds of winning or losing each turn. What if they didn’t? What if some options had stronger offense than defense, or stronger defense than offense? Somewhat surprisingly, this doesn’t break the game!
So let’s allow for imbalanced strategies. Our new rule to keep things interesting is that all options must be viable strategies under optimal play. Formally, this means that if you play the game over and over again, every option has positive probability in a resulting Nash Equilibrium. This excludes Rock – Paper – Scissors – Match in the video above (0:55 – 3:20), because Match is a strictly worse choice than the others. We’ll call games that fit our criteria an inclusive game.
Here are all the inclusive games for n=4. We have games with meaningfully different strategies now: strong 2-0-1’s, weak 1-0-2’s, and balanced 1-1-1’s. But due to the relationships between the nodes, the strong and weak strategies are equally likely to win you the game! Optimally playing these games means that you mix up your strategies and randomly make your choice according to these probabilities.
Let’s give that first graph a cops theme. I call this one Witness – Cop – K-9 – Perp. The Witness withholds the evidence the Cop needs, and doesn’t bother the K-9. The Cop controls the K-9, and both of them catch the Perp. And the Perp warns the Witness that snitches get stitches. Now we really get an interesting game. Is it better to be the 2-0-1 cop, which is the strongest option? The balanced 1-1-1 Witness which beats the Cop? The weak 1-0-2 Perp that can counter the Witness but loses to the Cop and K-9? Or the balanced 1-1-1 K-9 which doesn’t interact with the Witness at all? The beauty of these games is that the math to find out how everything balances has already been figured out, so you don’t need to chase these chains of recursion. If we solve for a Nash Equilibrium, we see that choosing Witness 40% of the time is a valid strategy to hit a balanced win/loss ratio under optimal play. But the other 60% of the time you still need to split the rest of your choices evenly between the three others.
Now, in a head-to-head game of WCKP, everyone shows up already knowing these odds and you could argue that this doesn’t have any more game depth than baseline RPS. But it’s a much richer narrative canvas. Does the person across from you hate cops? Do they like making barking noises when they play a K-9? These are the psychological hooks you can use to win the mind games that lie at the heart of RPS.
The middle n=4 graph above seems like it might have similar dynamics, but if we look closely it’s not actually that interesting. This is just Rock – Paper – Scissors with rock split into two identical choices. Boulder – Brick – Paper – Scissors might technically have more play options, but is really the same game as RPS with another tie.
In my opinion, these games don’t add anything interesting. We can check for them by seeing if they can be reduced to a size n-1 game by combining two nodes that win & lose against the same options, and tie each other. We’ll call games which can’t be simplified further twin-free.
If we do this, we find out that the elemental game is actually the Cops game in disguise! The clay and grass options both beat water and lose to fire, and so can be combined into one. This turns them into the equivalent of the Witness in the Cops game.
| Elemental Game | Cops Game |
| Water 🌊 (2-0-2) | Cop 👮♂️ (2-0-1) |
| Fire 🔥 (2-0-2) | Perp 👤 (1-0-2) |
| Sand ⛱️ (1-2-1) | K9 🐕🦺 (1-1-1) |
| Clay 🏺 + Grass 🌱 (1-2-1) | Witness 🤐 (1-1-1) |
If memorizing the optimal strategy for the Cops game is too complicated, I have good news. That strategy isn’t actually the only one – games can have multiple equilibrium points. For example, take the strategy where you choose the K-9 and Witness each 50% of the time. They cancel out each other’s weaknesses, so there’s no way for your opponent to gain an advantage over you. Or you could also choose Cop, Perp, and Witness each 1/3 of the time and ignore K-9 altogether. This also balances.
In fact, there is a whole continuum of optimal strategies, and they connect the two above. If A is the K-9/Witness 50% strategy and B is the Cop/Perp/Witness 33% strategy, then all the strategies that lie on the line Ax + B(1-x) are also optimal. The 20% / 40% / 20% / 20% strategy we found above is what happens when you happen to set x=0.4. Another way to think of this is that A and B set endpoints that bound this family of optimal strategies – Witness is played frequently between 33-50% of the time, Cop and Perp are played sparingly at 0-33%, and K-9 has a wide range of viable play from 0-50%.
We need a way to somehow choose a representative solution from the continuum of possibilities. For this exploration we will choose the solution that maximizes the minimum probability, to show what optimal play looks like when choices are relatively balanced between all options. Finding the space of optimal play quickly gets into deep math with interesting results especially at higher n – for example, in our construction odd n games might have a unique solution, but no even n game does. But let’s not dawdle, we need to keep moving.
We have our hard criteria, but how do we figure out which games are more interesting than others? This is subjective, but here are a few metrics I’ve found to rank them. These are listed for each game on the plots at the end, so you can compare how these metrics change games.
We’re ready now to explore the full, colorful garden of Rock – Paper – Scissors. The image below shows all the twin-free inclusive RPS games for n=3, 4, and 5, sorted by number of orbits, the tie fraction, and then gini coefficient. Each of these has unique structures and strategies that I think makes for really interesting narrative possibilities in your game design. Pick one and see if you can give it a theme!
Beyond this, the garden explodes.
This was a fun exploration, and I was surprised by the rich depth hidden inside the simple game of Rock-Paper-Scissors. It wasn’t clear to me that allowing unequal wins and losses on a node would work at all, but it turns out that it’s key to unlocking a whole world of interesting dynamics!
I wrote this post manually without AI, but leaned heavily on Claude code to vibe code the search process for valid games. I understood and could verify the initial implementation on low n, but was hands off for the optimizations that were necessary for searching higher n, beyond verifying that the algorithms still reproduced the values we already found. All this to say, take the results here with a grain of salt and I think it would be an interesting exercise to implement this yourself and figure out optimizations for faster game searches. If there’s a lot of interest I can share the code, but it’s a mess at the moment.
I am also not super familiar with the existing literature here. The names “regular”, “balanced”, “inclusive”, and “twin-free” gesture at real terms, but are used informally. Some searching turned up related work on weak tournament games, equilibria in RPS-like tournament games, and twin-free graphs, but I didn’t find the exact combination we looked at here: weak tournaments with ties, reduced by merging tied twins, and filtered for games where every option appears in optimal play. It’s completely possible this is known under different terminology. That said, I haven’t seen anything which takes this angle on RPS games, and I don’t see any of the number sequences below in OEIS. And the n=4 Cops game seems like a pretty fundamental game that is totally new to me! Please drop links in the comments if you find prior art here.
Here are the number of regular, balanced, and inclusive games found at each n, for as high as my laptop could reasonably calculate. The number in parentheses shows how many in each category are twin-free.
| n | candidates = 3^C(n,2) | regular | balanced | inclusive |
|---|-----------------------|----------|-----------|------------|
| 3 | 27 | 1 (1) | 1 (1) | 1 (1) |
| 4 | 729 | 1 (1) | 1 (1) | 3 (2) |
| 5 | 59,049 | 2 (2) | 4 (3) | 15 (8) |
| 6 | 14,348,907 | 5 (4) | 16 (13) | 222 (177) |
| 7 | 10,460,353,203 | 13 (12) | 175 (152) | — |
| 8 | 22,876,792,454,961 | 82 (76) | — | — |