Search
In the last homework, you are asked to implement a player/agent to play the famous prisoner's dilemma. Your player (program implementing suitable strategy) is not only going to be tested for proper function but also is going to compete against other students' players. That is, a fraction of the points you can gain is based on how good your solution is compared to your colleagues. Of course, originality and complexity of your ideas count, too!
Note that this homework does not test anything above and beyond the level of the last homework assignment (Fraction class). The primary focus should be on further practising using classes and objects, this time in an intriguing and competitive environment, and on a mild introduction to game theory.
Write a player (agent) class which will play an iterative non-cooperative two-player game. Your program will be given a payoff matrix beforehand. The number of iterations, however, may or may not be known. The ultimate goal lies in maximizing player's score/profit over all iterations of all matches (or minimizing player's loss).
The submission of this homework is split into two parts:
The corresponding deadlines are shown in BRUTE.
You do not have to wait till the deadline of the first part (06_pd) to submit your player to the tournament (06_tour).
Tournament scores are not final till the submission deadline. Even though your player can be ranked very high at first, there is no guarantee that other students' players submitted later will perform better. Please, keep track of your rank throughout the whole submission period and feel free to re-submit a better solution if you feel your rank fell too much.