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:
[-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.
Solution CommentsShow comments
Problem Recent Solvers78