/*
* CoalitionalDef4AskingStrategy.java
*
* Created on May 26, 2004, 12:17 AM
*/
package simulations.core.strategy.askingSupportStrategy;
import java.util.ArrayList;
import java.util.Iterator;
import simulations.core.Player;
import simulations.core.history.PlayerTurn;
/**
* This class describes an asking strategy that ask players that are
* in my coalition (definition 4) from last turn
* @author tom
*/
public class CoalitionalDef4AskingStrategy extends AskingStrategy {
/** The coalition **/
private ArrayList coalition;
/** Creates a new instance of CoalitionalDef4AskingStrategy */
public CoalitionalDef4AskingStrategy() {
super();
name="CoalitionalDef4AskingStrategy";
negative=false;
coalition=new ArrayList();
memoryParam=false;
abr="11";
}
/** return the description of this asking strategy
* @return return the description of this asking strategy
**/
public String getDescription() {
return "Asking strategy : I ask players\n"+
"that are in my coalition (definition 4)\n";
}
/** Returns the list of players to ask support.
* @return Returns the list of players to ask support.
* @param attackedPlayer The attacked player
* @param player The attacking player
* @param playerList The list of avalaible player
*/
public ArrayList getPlayersToAskSupport(Player player, Player attackedPlayer, ArrayList playerList) {
if (simulations.SimulationParameters.debug) {
System.out.println("CoalDef4AskingStrat : coalList = "+coalition.toString());
}
ArrayList l = new ArrayList();
Iterator it = coalition.iterator();
while (it.hasNext()) {
ArrayList l2 = (ArrayList)it.next();
Iterator it2 = l2.iterator();
while (it2.hasNext()) {
Player p = (Player)it2.next();
if (!(l.contains(p))) {
if (!(p.equals(player))) {
l.add(p);
}
}
}
}
if (negative) {
ArrayList l2 = new ArrayList();
for(int i=0;i