blob: 4023d2a9962226d42bd1bab42affc06fbdaaaac4 [file] [log] [blame]
package edu.brook;
import org.eclipse.amp.escape.runtime.extension.IAgentChild;
/**
* <!-- begin-user-doc -->
* Player Java Implementation.
*
* Generated by AMF for model: DemographicPrisoner_sDilemma.metaabm in project: org.eclipse.amp.amf.examples.escape
* <!-- end-user-doc -->
* @generated
*/
public class Player {
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
private boolean cooperate = false;
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
private int age = 0;
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
private int wealth = 0;
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
private List<IAgentChild> children;
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
public List<IAgentChild> getChildren() {
return children;
}
/**
* <!-- begin-user-doc -->
* Constructs a new Player.
* <!-- end-user-doc -->
* @generated
*/
public Player() {
children = new ArrayList<IAgentChild>();
}
//todo, make this a useful value for evaluating compatibility of different versions of generated classes
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
private static final long serialVersionUID = 89989998L;
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
private static long nextUniqueID;
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
private long uniqueID;
/**
* <!-- begin-user-doc -->
*
* <!-- end-user-doc -->
* @generated
*/
public long getUID() {
if (uniqueID == 0) {
uniqueID = nextUniqueID++;
}
return uniqueID;
}
/**
* <!-- begin-user-doc -->
* Clones the agent, ensuring that a unique id is assigned.
* <!-- end-user-doc -->
* @generated
*/
public Object clone() {
try {
Player clone = (Player) super.clone();
clone.uniqueID = 0;
return clone;
} catch (Exception e) {
throw new RuntimeException("Unexpected cloning exception: " + e);
}
}
/**
* <!-- begin-user-doc -->
* Initialize Initialization. Executed once at the beginning of each model run.
* <!-- end-user-doc -->
* @generated
*/
public void intializeNonFramework() {
setWealth(getDemographicPrisoner_sDilemma().getInitialWealth());
int randomToMaxAge = randomToLimit(getDemographicPrisoner_sDilemma()
.getMaximumAge());
boolean randomStrategy = true;
setAge(randomToMaxAge);
setCooperate(randomStrategy);
}
/**
* <!-- begin-user-doc -->
* Move To Random Location Initialization. Executed once at the beginning of each model run.
* <!-- end-user-doc -->
* @generated
*/
public void moveToRandomLocation() {
/*
Spatial Functions:
[available]
*/
PlayCell randomCell2 = new PlayCell();
}
/**
* <!-- begin-user-doc -->
* Random Walk Rule. Executed every period.
* <!-- end-user-doc -->
* @generated
*/
public void randomWalk() {
/*
Spatial Functions:
[available, neighbor]
*/
PlayCell randomNeighbor = new PlayCell();
}
/**
* <!-- begin-user-doc -->
* Play Neighbor Rule. Executed every period.
* <!-- end-user-doc -->
* @generated
*/
public void playNeighbor() {
/*
Spatial Functions:
[neighbor]
*/
Player otherPlayer = new Player();
if ((otherPlayer.isCooperate() && isCooperate())) {
int valueWealthAddPayoffCooperateCooperate = getWealth()
+ getDemographicPrisoner_sDilemma().getPayoffCC();
int valueWealthAddPayoffCooperateCooperateCopy = otherPlayer
.getWealth()
+ otherPlayer.getDemographicPrisoner_sDilemma()
.getPayoffCC();
setWealth(valueWealthAddPayoffCooperateCooperate);
otherPlayer.setWealth(valueWealthAddPayoffCooperateCooperateCopy);
}
if ((otherPlayer.isCooperate() && !isCooperate())) {
int valueWealthAddPayoffDefectCooperate = getWealth()
+ getDemographicPrisoner_sDilemma().getPayoffDC();
int valueWealthAddPayoffCooperateDefectCopy = otherPlayer
.getWealth()
+ otherPlayer.getDemographicPrisoner_sDilemma()
.getPayoffCD();
setWealth(valueWealthAddPayoffDefectCooperate);
otherPlayer.setWealth(valueWealthAddPayoffCooperateDefectCopy);
}
if ((!otherPlayer.isCooperate() && isCooperate())) {
int valueWealthAddPayoffCooperateDefect = getWealth()
+ getDemographicPrisoner_sDilemma().getPayoffCD();
int valueWealthAddPayoffDefectCooperateCopy = otherPlayer
.getWealth()
+ otherPlayer.getDemographicPrisoner_sDilemma()
.getPayoffDC();
setWealth(valueWealthAddPayoffCooperateDefect);
otherPlayer.setWealth(valueWealthAddPayoffDefectCooperateCopy);
}
if ((!isCooperate() && !otherPlayer.isCooperate())) {
int valueWealthAddPayoffDefectDefect = getWealth()
+ getDemographicPrisoner_sDilemma().getPayoffDD();
int valueWealthAddPayoffDefectDefectCopy = otherPlayer.getWealth()
+ otherPlayer.getDemographicPrisoner_sDilemma()
.getPayoffDD();
setWealth(valueWealthAddPayoffDefectDefect);
otherPlayer.setWealth(valueWealthAddPayoffDefectDefectCopy);
}
}
/**
* <!-- begin-user-doc -->
* Update Age Rule. Executed every period.
* <!-- end-user-doc -->
* @generated
*/
public void updateAge() {
int incrementAge = getAge() + 1;
setAge(incrementAge);
}
/**
* <!-- begin-user-doc -->
* Fission Rule Rule. Executed every period.
* <!-- end-user-doc -->
* @generated
*/
public void fissionRule() {
if (getWealth() >= getDemographicPrisoner_sDilemma().getFissionWealth()) { /*
Spatial Functions:
[neighbor, available]
*/
PlayCell birthLocation = new PlayCell();
createAgents.setWealth(getDemographicPrisoner_sDilemma()
.getInheiritedWealth());
double valueRandomUnit = randomUnit();
int wealthChildWealth = getWealth()
- createAgents.getDemographicPrisoner_sDilemma()
.getInheiritedWealth();
if (valueRandomUnit < createAgents
.getDemographicPrisoner_sDilemma().getMutationRate()) {
boolean valueRandomBoolean = true;
createAgents.setCooperate(valueRandomBoolean);
}
if (!(valueRandomUnit < createAgents
.getDemographicPrisoner_sDilemma().getMutationRate())) {
createAgents.setCooperate(isCooperate());
}
setWealth(wealthChildWealth);
}
}
/**
* <!-- begin-user-doc -->
* Die At Age Rule. Executed every period.
* <!-- end-user-doc -->
* @generated
*/
public void dieAtAge() {
if (getAge() > getDemographicPrisoner_sDilemma().getDeathAge()) {
}
}
/**
* <!-- begin-user-doc -->
* Die At Wealth 0 Rule. Executed every period.
* <!-- end-user-doc -->
* @generated
*/
public void dieAtWealth0() {
if (getWealth() < 0) {
}
}
/**
* <!-- begin-user-doc -->
* Gets the Cooperate property for Player.
* @return
* <!-- end-user-doc -->
* @generated
*/
public boolean isCooperate() {
return cooperate;
}
/**
* <!-- begin-user-doc -->
* Sets the Cooperate property for Player.
*
* @param _cooperate the new Cooperate value
* <!-- end-user-doc -->
* @generated
*/
public void setCooperate(boolean _cooperate) {
cooperate = _cooperate;
}
/**
* <!-- begin-user-doc -->
* Gets the Age property for Player.
* @return
* <!-- end-user-doc -->
* @generated
*/
public int getAge() {
return age;
}
/**
* <!-- begin-user-doc -->
* Sets the Age property for Player.
*
* @param _age the new Age value
* <!-- end-user-doc -->
* @generated
*/
public void setAge(int _age) {
age = _age;
}
/**
* <!-- begin-user-doc -->
* Gets the Wealth property for Player.
* @return
* <!-- end-user-doc -->
* @generated
*/
public int getWealth() {
return wealth;
}
/**
* <!-- begin-user-doc -->
* Sets the Wealth property for Player.
*
* @param _wealth the new Wealth value
* <!-- end-user-doc -->
* @generated
*/
public void setWealth(int _wealth) {
wealth = _wealth;
}
}