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

Learn moreOpportunities for recent engineering grads.

Apply TodayYou, 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:

[-1 1 1 0]

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.

100 correct solutions
252 incorrect solutions

Last solution submitted on Nov 19, 2014

1 player likes this problem

1 Comment