com.bolinfest.prisonerbot
Class SimplePayoffMatrix
java.lang.Object
com.bolinfest.prisonerbot.SimplePayoffMatrix
- All Implemented Interfaces:
- PayoffMatrix
public class SimplePayoffMatrix
- extends Object
- implements PayoffMatrix
SimplePayoffMatrix is a simple PayoffMatrix that can
be created from an array of integers.
- Author:
- mbolin
SimplePayoffMatrix
public SimplePayoffMatrix(int t,
int r,
int p,
int s,
String name,
String description)
- This creates a symmetric payoff matrix that conforms to the
T > R > P > S principle. In the "canonical" payoff matrix:
T = 5, R = 3, P = 1, S = 0
These constraints are explained in the
Prisoner's dilemma entry in the Wikipedia
- Parameters:
t - the temptation to defect (what you get if the other player cooperates)r - the reward for mutual cooperationp - the punishment for mutual defections - the "sucker's payoff" (what you get when the other player defects)
- Throws:
IllegalArgumentException - if t > r > p > s does not hold
SimplePayoffMatrix
public SimplePayoffMatrix(int[][] p,
String name,
String description)
- Create a possibly unsymmetric payoff matrix. The argument for
the "canonical" payoff matrix would be the following:
int[][] p = { {3, 3}, {0, 5},
{5, 0}, {1, 1} };
- Parameters:
p - must be a 4x2 array whose values represent the
Prisoner's Dilemma payoff matrix as follows:
| B2 cooperate | B2 defect |
----------------------------------------------------
B1 cooperate | p[0][0], p[0][1] | p[1][0], p[1][1] |
----------------------------------------------------
B1 defect | p[2][0], p[2][1] | p[3][0], p[3][1] |
----------------------------------------------------
Where for each entry (x, y) in the table, x is B1's payoff
and y is B2's payoff.
- Throws:
IllegalArgumentException - if the array is not 4x2
calculatePayoff
public int[] calculatePayoff(Choice firstPlayerChoice,
Choice secondPlayerChoice)
- Description copied from interface:
PayoffMatrix
- Get the payoff for a given set of choices.
- Specified by:
calculatePayoff in interface PayoffMatrix
- Parameters:
firstPlayerChoice - the choice made by the first playersecondPlayerChoice - the choice made by the second player
- Returns:
- an int array of length 2 where the first element is the
payoff for the first player and the second element is the payoff
for the second player
getName
public String getName()
- Specified by:
getName in interface PayoffMatrix
- Returns:
- the name of the PayoffMatrix
getDescription
public String getDescription()
- Specified by:
getDescription in interface PayoffMatrix
- Returns:
- a description of the PayoffMatrix
getAllPayoffs
public int[] getAllPayoffs()
- Specified by:
getAllPayoffs in interface PayoffMatrix
toString
public String toString()
- Overrides:
toString in class Object