net.sf.colossus.ai
Interface AI

All Known Implementing Classes:
AbstractAI, CowardSimpleAI, ExperimentalAI, HumanHaterRationalAI, MilvangAI, ParallelEvaluatorAI, RationalAI, SimpleAI

public interface AI

interface to allow for multiple AI implementations

Author:
Bruce Sherrod, David Ripton

Method Summary
 CreatureType acquireAngel(Legion legion, java.util.List<CreatureType> recruits)
          choose whether to acquire an angel or archangel
 java.util.List<CritterMove> battleMove()
          return a list of battle moves for the active legion
 void cleanupBattle()
          a Battle is finished
 boolean concede(Legion legion, Legion enemy)
          choose whether legion should concede to enemy
 boolean flee(Legion legion, Legion enemy)
          choose whether legion should flee from enemy
 Caretaker getCaretaker()
           
 CreatureType getVariantRecruitHint(LegionClientSide legion, MasterHex hex, java.util.List<CreatureType> recruits)
           
 void handleCarries(int carryDamage, java.util.Set<java.lang.String> carryTargets)
          choose carry target
 void initBattle()
          a Battle start
 boolean masterMove()
          make masterboard moves for current player in the Game
 void muster()
          make recruits for current player
 PlayerColor pickColor(java.util.List<PlayerColor> colors, java.util.List<PlayerColor> favoriteColors)
          pick a color of legion markers
 MasterHex pickEngagement()
          pick an engagement to resolve
 EntrySide pickEntrySide(MasterHex hex, Legion legion, java.util.Set<EntrySide> entrySides)
          pick an entry side
 java.lang.String pickMarker(java.util.Set<java.lang.String> markerIds, java.lang.String preferredShortColor)
          pick a legion marker
 java.lang.String pickStrikePenalty(java.util.List<java.lang.String> choices)
          pick an optional strike penalty
 void reinforce(Legion legion)
          pick one reinforcement for legion
 void retryFailedBattleMoves(java.util.List<CritterMove> bestMoveOrder)
          Try another move for creatures whose moves failed.
 void setVariant(Variant variant)
           
 boolean split()
          make splits for current player.
 boolean splitCallback(Legion parent, Legion child)
          continue making splits.
 boolean strike(Legion legion)
          make battle strikes for legion
 SummonInfo summonAngel(Legion summoner, java.util.List<Legion> possibleDonors)
          choose whether to summon an angel or archangel
 

Method Detail

setVariant

void setVariant(Variant variant)

masterMove

boolean masterMove()
make masterboard moves for current player in the Game


split

boolean split()
make splits for current player. Return true if done


splitCallback

boolean splitCallback(Legion parent,
                      Legion child)
continue making splits. Return true if done.


muster

void muster()
make recruits for current player


reinforce

void reinforce(Legion legion)
pick one reinforcement for legion


flee

boolean flee(Legion legion,
             Legion enemy)
choose whether legion should flee from enemy


concede

boolean concede(Legion legion,
                Legion enemy)
choose whether legion should concede to enemy


strike

boolean strike(Legion legion)
make battle strikes for legion


initBattle

void initBattle()
a Battle start


battleMove

java.util.List<CritterMove> battleMove()
return a list of battle moves for the active legion


cleanupBattle

void cleanupBattle()
a Battle is finished


retryFailedBattleMoves

void retryFailedBattleMoves(java.util.List<CritterMove> bestMoveOrder)
Try another move for creatures whose moves failed.


pickEntrySide

EntrySide pickEntrySide(MasterHex hex,
                        Legion legion,
                        java.util.Set<EntrySide> entrySides)
pick an entry side


pickEngagement

MasterHex pickEngagement()
pick an engagement to resolve


acquireAngel

CreatureType acquireAngel(Legion legion,
                          java.util.List<CreatureType> recruits)
choose whether to acquire an angel or archangel


summonAngel

SummonInfo summonAngel(Legion summoner,
                       java.util.List<Legion> possibleDonors)
choose whether to summon an angel or archangel


pickColor

PlayerColor pickColor(java.util.List<PlayerColor> colors,
                      java.util.List<PlayerColor> favoriteColors)
pick a color of legion markers


pickMarker

java.lang.String pickMarker(java.util.Set<java.lang.String> markerIds,
                            java.lang.String preferredShortColor)
pick a legion marker


handleCarries

void handleCarries(int carryDamage,
                   java.util.Set<java.lang.String> carryTargets)
choose carry target


pickStrikePenalty

java.lang.String pickStrikePenalty(java.util.List<java.lang.String> choices)
pick an optional strike penalty


getVariantRecruitHint

CreatureType getVariantRecruitHint(LegionClientSide legion,
                                   MasterHex hex,
                                   java.util.List<CreatureType> recruits)

getCaretaker

Caretaker getCaretaker()