Class ExperimentalAI
java.lang.Object
net.sf.colossus.ai.AbstractAI
net.sf.colossus.ai.SimpleAI
net.sf.colossus.ai.ExperimentalAI
- All Implemented Interfaces:
AI
- Direct Known Subclasses:
ParallelEvaluatorAI
Yet Another AI, to test some stuff.
- Author:
- Romain Dolbeau
-
Nested Class Summary
Nested classes/interfaces inherited from class SimpleAI
SimpleAI.PowerSkill, SimpleAI.TriggerTimeIsUpNested classes/interfaces inherited from class AbstractAI
AbstractAI.AbstractAIOracle, AbstractAI.CreatureValueConstants, AbstractAI.MoveInfo -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List<TacticalObjective> private static final Loggerprivate static final longFields inherited from class SimpleAI
MIN_ITERATIONS, timeIsUp, timeLimitFields inherited from class AbstractAI
bec, client, cvc, hintSectionUsed, random, variant -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturn a list of critter moves, in best move order.voida Battle is finishedprotected voidevaluateCritterMove_Defender(BattleCritter critter, ValueRecorder value, MasterBoardTerrain terrain, BattleHex hex, LegionClientSide legion, int turn) this compute for non-titan defending critterprotected voidevaluateCritterMove_Rangestrike(BattleCritter critter, Map<BattleHex, Integer> strikeMap, ValueRecorder value, MasterBoardTerrain terrain, BattleHex hex, int power, int skill, LegionClientSide legion, int turn, Set<BattleHex> targetHexes) "Does nothing" override of evaluateCritterMove_Rangestrike in @SimpleAI.protected voidevaluateCritterMove_Strike(BattleCritter critter, Map<BattleHex, Integer> strikeMap, ValueRecorder value, MasterBoardTerrain terrain, BattleHex hex, int power, int skill, LegionClientSide legion, int turn, Set<BattleHex> targetHexes) "Does nothing" override of evaluateCritterMove_Strike in @SimpleAI.protected voidevaluateCritterMove_Titan(BattleCritter critter, ValueRecorder value, MasterBoardTerrain terrain, BattleHex hex, Legion legion, int turn) this computes the special case of the Titan critterprotected intevaluateLegionBattleMoveAsAWhole(LegionMove lm, Map<BattleHex, Integer> strikeMap, ValueRecorder value) (package private) Collection<LegionMove> findLegionMoves(List<List<CritterMove>> allCritterMoves) allCritterMoves is a List of sorted MoveLists.voida Battle startMethods inherited from class SimpleAI
acquireAngel, chooseRecruit, concede, doInitialGameSplit, evaluateLegionBattleMove, findBestLegionMove, findWeakestTwoCritters, flee, getCreatureMoveLimit, getNativeValue, handleCarries, handleMulligans, masterMove, muster, pickColor, pickEngagement, pickEntrySide, pickMarker, pickStrikePenalty, RATIO_DRAW, RATIO_LOSE_HEAVY_LOSS, RATIO_WIN_HEAVY_LOSS, RATIO_WIN_MINIMAL_LOSS, reinforce, retryFailedBattleMoves, setupTimer, split, splitCallback, strike, summonAngelMethods inherited from class AbstractAI
buildEnemyAttackMap, couldRecruitUp, countCreatureAccrossAllLegionFromPlayer, findStrikeMap, generateDamageMap, generateLegionMoves, getAcqStepValue, getBattleStrike, getBattleUnit, getCaretaker, getHintedRecruitmentValue, getHintedRecruitmentValueNonTitan, getHintedRecruitmentValueNonTitan, getInitialSplitHint, getKillValue, getKillValue, getNumberOfWaysToTerrain, getVariantRecruitHint, hasOpponentNativeCreature, isHumanLegion, makeLegionMove, rangeToClosestOpponent, setVariant
-
Field Details
-
LOGGER
-
MAX_EXHAUSTIVE_SEARCH_MOVES
private static final long MAX_EXHAUSTIVE_SEARCH_MOVES- See Also:
-
listObjectives
-
-
Constructor Details
-
ExperimentalAI
-
-
Method Details
-
findLegionMoves
Description copied from class:SimpleAIallCritterMoves is a List of sorted MoveLists. A MoveList is a sorted List of CritterMoves for one critter. Return a sorted List of LegionMoves. A LegionMove is a List of one CritterMove per mobile critter in the legion, where no two critters move to the same hex.- Overrides:
findLegionMovesin classSimpleAI
-
battleMove
Description copied from class:SimpleAIReturn a list of critter moves, in best move order.- Specified by:
battleMovein interfaceAI- Overrides:
battleMovein classSimpleAI
-
evaluateCritterMove_Titan
protected void evaluateCritterMove_Titan(BattleCritter critter, ValueRecorder value, MasterBoardTerrain terrain, BattleHex hex, Legion legion, int turn) this computes the special case of the Titan critter- Overrides:
evaluateCritterMove_Titanin classSimpleAI
-
evaluateCritterMove_Defender
protected void evaluateCritterMove_Defender(BattleCritter critter, ValueRecorder value, MasterBoardTerrain terrain, BattleHex hex, LegionClientSide legion, int turn) this compute for non-titan defending critter- Overrides:
evaluateCritterMove_Defenderin classSimpleAI
-
evaluateCritterMove_Strike
protected void evaluateCritterMove_Strike(BattleCritter critter, Map<BattleHex, Integer> strikeMap, ValueRecorder value, MasterBoardTerrain terrain, BattleHex hex, int power, int skill, LegionClientSide legion, int turn, Set<BattleHex> targetHexes) "Does nothing" override of evaluateCritterMove_Strike in @SimpleAI. The job of that one is handled (supposedly better... I wish) by the objectives code.- Overrides:
evaluateCritterMove_Strikein classSimpleAI
-
evaluateCritterMove_Rangestrike
protected void evaluateCritterMove_Rangestrike(BattleCritter critter, Map<BattleHex, Integer> strikeMap, ValueRecorder value, MasterBoardTerrain terrain, BattleHex hex, int power, int skill, LegionClientSide legion, int turn, Set<BattleHex> targetHexes) "Does nothing" override of evaluateCritterMove_Rangestrike in @SimpleAI. The job of that one is handled (supposedly better... I wish) by the objectives code.- Overrides:
evaluateCritterMove_Rangestrikein classSimpleAI
-
evaluateLegionBattleMoveAsAWhole
protected int evaluateLegionBattleMoveAsAWhole(LegionMove lm, Map<BattleHex, Integer> strikeMap, ValueRecorder value) - Overrides:
evaluateLegionBattleMoveAsAWholein classSimpleAI
-
initBattle
public void initBattle()Description copied from interface:AIa Battle start- Specified by:
initBattlein interfaceAI- Overrides:
initBattlein classAbstractAI
-
cleanupBattle
public void cleanupBattle()Description copied from interface:AIa Battle is finished- Specified by:
cleanupBattlein interfaceAI- Overrides:
cleanupBattlein classAbstractAI
-