Problem 650. Steal, Share, or Catch

You, I, and a few other characters are going to play a game of Steal, Share or Catch. We are going to play it 10,000 times vs. each of the characters.

The rules of the game are this:

  • There are two points available each round
  • We will both choose to either Steal, Share, or Catch
  • If we both choose Share, we both get one point.
  • If one chooses Steal and the other Share, the Stealer gets two points.
  • If one chooses Steal and the other Catch, the Catcher gets two points.
  • Any other combination, no one is awarded points.

You are to write an algorithm that will return either

  • -1: Steal
  • 0: Share
  • 1: Catch

To help you make your choice, you will have a history vector that shows what your choices have been so far, and what the opponent's choices have been. These histories are in the form of:


Meaning that the first round there was a Steal, then two Catches, then a share.

The characters you will play against are:

  • Evil (always steals)
  • Good (always shares)
  • Chaos (randomly chooses)
  • Doug (Something more complicated)

As this problem runs, I will take the better entries and add them into the cast of characters that you play against. Maybe in a different Cody problem though.

The scores to beat are:

terribleScore   =     0; % works
badScore        = 23000; % good  strategy scores this
okScore         = 26000; % evil  strategy scores this
decentScore     = 29000; % chaos strategy scores this
greatScore      = 42000; % doug  strategy scores this

If you can make a winning solution here, it might be added to the Tournament of Champions version of this problem. E-mail me if you want yours added.

Solution Stats

34.27% Correct | 65.73% Incorrect
Last Solution submitted on Feb 29, 2020

Problem Comments

Solution Comments

Problem Recent Solvers72

Suggested Problems

More from this Author52

Problem Tags