Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!

Problem 650. Steal, Share, or Catch

Created by Doug Hull

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.


Problem Group

Solution Statistics

109 correct solutions 281 incorrect solutions
Last solution submitted on Jul 27, 2016

Problem Comments

Solution Comments