/*
* CoalitionalDef3AskingStrategy.java
*
* Created on May 26, 2004, 12:12 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 3) from last turn
* @author tom
*/
public class CoalitionalDef3AskingStrategy extends AskingStrategy {
/** The coalition **/
private ArrayList coalition;
/** Creates a new instance of CoalitionalDef3AskingStrategy */
public CoalitionalDef3AskingStrategy() {
super();
name="CoalitionalDef3AskingStrategy";
negative=false;
coalition=new ArrayList();
memoryParam=false;
abr="10";
}
/** 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 2)\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("CoalDef3AskingStrat : 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