Please enable JavaScript to view the comments powered by Disqus.

Winning Strategy for two-player Coup

This is not a how-to-play guide. This is a how-to-win guide.

Five cards are dealt to both my opponent and me.

Game starts.

Now, let's define some notations for convenience:

A, B, C, D, E denotes any random character in Coup
i_have(nX) denotes the event that I was dealt n number of X cards, where X ∈ {A, B, C, D, E}. If undefined, n == 1
u_have(nX) denotes the event that my opponent was dealt n number of X cards, where X ∈ {A, B, C, D, E}. If undefined, n == 1
P(Y) denotes the probability of some event
C(Y) denotes the combination of some event
nCr denotes the number of combinations of n pick r

The winning formula is simple:

  1. Guess what cards your opponent has
  2. Guess what cards your opponent pick
  3. Prepare bluffs
  4. Play

1. Guess what cards your opponent has

There are two signals:

  1. The cards you are dealt with tells you what cards your opponent might have
  2. How long your opponent spends on card-picking tells you how many choices or even the choices they have
Given i_have(0A), 
    P(u_have(>=1A))
        = 1 - C(u_have(0A)) / C(any)
        = 1 - 7C5 / 10C5
        = 0.92
    P(u_have(2A))
        = C(u_have(2A)) / C(any)
        = 3C2 * 7C3 / 10C5
        = 0.42
    P(u_have(3A))
        = C(u_have(3A)) / C(any)
        = 7C2 / 10C5
        = 0.08
Given i_have(1A),
    P(u_have(>=1A))
        = 1 - C(u_have(0A)) / C(any)
        = 1 - 8C5 / 10C5
        = 0.78
    P(u_have(1A))
        = C(u_have(1A)) / C(any)
        = 8C4 * 2C1 / 10C5
        = 0.56
    P(u_have(2A))
        = C(u_have(2A)) / C(any)
        = 8C3 / 10C5
        = 0.22
Given i_have(2A),
    P(u_have(1A))
        = C(u_have(1A)) / C(any)
        = 9C4 / 10C5
        = 0.5
        which makes sense because your opponent can pick any 1 of the two piles containing A

Possible cards dealt to you and what they mean:

- i_have(ABCDE)
   - assume the opponent has all different
- i_have(2A0BCDE)
    - assume the opponent has all different
- i_have(2A2BC0D0E)
    - assume the opponent has CDE and either A or B.
- i_have(3ABC0D0E)
    - assume the opponent has DE and either B or C

Implications:

I can further guess what cards were dealt to my opponent by the time spent picking their cards. This is highly subjective, but we need to consider whose turn it is to make the first move and what cards the opponent might have. Usually, the more time they spend, the more choices they have. It could also mean that they have bad cards.

Always be the last to pick cards unless I want to throw off my opponent.

2. Guess what cards your opponent pick

This is a subjective assessment, but it becomes easier and easier to guess as you play more and learn more about your opponent's playing style. If they were dealt >=2 of Duke, do they usually not pick Duke and bluff their way?

Depending on who's the first to move:

3. Prepare to bluff

4. Play

Meta-strategy

Remember how your opponent plays:

Their strategy changes, too. When they keep getting called on bluffs, they might begin playing honestly.