From eb0bc89597fce2ca46ac4de87a42a4409505d491 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Mon, 26 Dec 2011 12:52:31 +0400 Subject: [PATCH] Tree optimizers. Fixed Issue 420. --- Mage.Client/plugins/mage-player-ai-ma.jar | Bin 46795 -> 50296 bytes .../src/mage/player/ai/ComputerPlayer6.java | 35 ++++------ .../ai/ma/optimizers/TreeOptimizer.java | 22 +++++++ .../ma/optimizers/impl/BaseTreeOptimizer.java | 61 ++++++++++++++++++ .../ai/ma/optimizers/impl/EquipOptimizer.java | 31 +++++++++ .../ma/optimizers/impl/LevelUpOptimizer.java | 40 ++++++++++++ Mage.Server/plugins/mage-player-ai-ma.jar | Bin 46795 -> 50296 bytes Mage.Tests/plugins/mage-player-ai-ma.jar | Bin 46795 -> 50296 bytes 8 files changed, 166 insertions(+), 23 deletions(-) create mode 100644 Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/TreeOptimizer.java create mode 100644 Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/BaseTreeOptimizer.java create mode 100644 Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/EquipOptimizer.java create mode 100644 Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/LevelUpOptimizer.java diff --git a/Mage.Client/plugins/mage-player-ai-ma.jar b/Mage.Client/plugins/mage-player-ai-ma.jar index 0f416d0b87a356b4677b608cc1987ae05715a492..c2468a1b93c0fcdca131d3dbe3d9762625722464 100644 GIT binary patch delta 20114 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 delta 16698 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 diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java index 7eed743e24..f63085f73d 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java @@ -40,20 +40,20 @@ import mage.abilities.costs.mana.ManaCosts; import mage.abilities.costs.mana.VariableManaCost; import mage.abilities.effects.Effect; import mage.abilities.effects.SearchEffect; -import mage.abilities.keyword.LevelUpAbility; import mage.cards.Card; import mage.cards.Cards; import mage.choices.Choice; -import mage.counters.CounterType; import mage.game.Game; import mage.game.combat.Combat; import mage.game.combat.CombatGroup; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; -import mage.game.permanent.PermanentCard; import mage.game.stack.StackAbility; import mage.game.stack.StackObject; import mage.game.turn.*; +import mage.player.ai.ma.optimizers.TreeOptimizer; +import mage.player.ai.ma.optimizers.impl.EquipOptimizer; +import mage.player.ai.ma.optimizers.impl.LevelUpOptimizer; import mage.players.Player; import mage.target.Target; import mage.target.TargetCard; @@ -84,6 +84,13 @@ public class ComputerPlayer6 extends ComputerPlayer implements private static final String FILE_WITH_INSTRUCTIONS = "config/ai.please.cast.this.txt"; private List suggested = new ArrayList(); + private static final List optimizers = new ArrayList(); + + static { + optimizers.add(new LevelUpOptimizer()); + optimizers.add(new EquipOptimizer()); + } + public ComputerPlayer6(String name, RangeOfInfluence range, int skill) { super(name, range); maxDepth = skill * 2; @@ -582,26 +589,8 @@ public class ComputerPlayer6 extends ComputerPlayer implements * @param allActions */ protected void optimize(Game game, List allActions) { - List toRemove = null; - for (Ability ability : allActions) { - if (ability instanceof LevelUpAbility) { - Permanent permanent = game.getPermanent(ability.getSourceId()); - if (permanent != null && permanent instanceof PermanentCard) { - PermanentCard leveler = (PermanentCard) permanent; - // check already existing Level counters and compare to maximum that make sense - if (permanent.getCounters().getCount(CounterType.LEVEL) >= leveler.getMaxLevelCounters()) { - if (toRemove == null) { - toRemove = new ArrayList(); - } - toRemove.add(ability); - } - } - } - } - if (toRemove != null) { - for (Ability r : toRemove) { - allActions.remove(r); - } + for (TreeOptimizer optimizer : optimizers) { + optimizer.optimize(game, allActions); } } diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/TreeOptimizer.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/TreeOptimizer.java new file mode 100644 index 0000000000..fe12e8ab2a --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/TreeOptimizer.java @@ -0,0 +1,22 @@ +package mage.player.ai.ma.optimizers; + +import mage.abilities.Ability; +import mage.game.Game; + +import java.util.List; + +/** + * Interface for ai optimizer that cuts the tree of decision. + * + * @author ayratn + */ +public interface TreeOptimizer { + + /** + * Optimize provided actions removing those of them that are redundant or lead to combinatorial explosion. + * + * @param game + * @param actions + */ + void optimize(Game game, List actions); +} diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/BaseTreeOptimizer.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/BaseTreeOptimizer.java new file mode 100644 index 0000000000..3c450416ea --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/BaseTreeOptimizer.java @@ -0,0 +1,61 @@ +package mage.player.ai.ma.optimizers.impl; + +import mage.abilities.Ability; +import mage.game.Game; +import mage.player.ai.ma.optimizers.TreeOptimizer; + +import java.util.ArrayList; +import java.util.List; + +/** + * Base class for tree optimizers. + * + * @author ayratn + */ +public abstract class BaseTreeOptimizer implements TreeOptimizer { + + /** + * List of abilities that should be removed because of optimization. + * + */ + protected List toRemove; + + /** + * Inner method for filtering actions. + * Should be implemented by classes. + * + * @param game + * @param actions + */ + abstract void filter(Game game, List actions); + + /** + * Template method for optimization. + * + * @param game + * @param actions + */ + @Override + public final void optimize(Game game, List actions) { + filter(game, actions); + + if (toRemove != null) { + for (Ability r : toRemove) { + actions.remove(r); + } + } + } + + /** + * Mark an ability to be removed + * Not thread-safe for performance reasons. + * + * @param ability + */ + protected void removeAbility(Ability ability) { + if (toRemove == null) { + toRemove = new ArrayList(); + } + toRemove.add(ability); + } +} diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/EquipOptimizer.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/EquipOptimizer.java new file mode 100644 index 0000000000..e01379cdd7 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/EquipOptimizer.java @@ -0,0 +1,31 @@ +package mage.player.ai.ma.optimizers.impl; + +import mage.abilities.Ability; +import mage.abilities.keyword.EquipAbility; +import mage.game.Game; +import mage.game.permanent.Permanent; + +import java.util.List; + +/** + * Make sure that AI won't equip the same creature equip already attached to. + * + * @author ayratn + */ +public class EquipOptimizer extends BaseTreeOptimizer { + + @Override + public void filter(Game game, List actions) { + for (Ability ability : actions) { + if (ability instanceof EquipAbility) { + Permanent permanent = game.getPermanent(ability.getFirstTarget()); + if (permanent != null) { + // check that equipment is not already attached to {this} + if (permanent.getAttachments().contains(ability.getSourceId())) { + removeAbility(ability); + } + } + } + } + } +} diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/LevelUpOptimizer.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/LevelUpOptimizer.java new file mode 100644 index 0000000000..3ee0ed62a5 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/LevelUpOptimizer.java @@ -0,0 +1,40 @@ +package mage.player.ai.ma.optimizers.impl; + +import mage.abilities.Ability; +import mage.abilities.keyword.LevelUpAbility; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.permanent.PermanentCard; + +import java.util.List; + +/** + * Make sure that AI won't level up whenever there are maximum possible level up counters. + * + * @author ayratn + */ +public class LevelUpOptimizer extends BaseTreeOptimizer { + + /** + * Check that ability is level up ability, then compare the current counters of Level type to maximum. + * + * @param game + * @param actions + */ + @Override + public void filter(Game game, List actions) { + for (Ability ability : actions) { + if (ability instanceof LevelUpAbility) { + Permanent permanent = game.getPermanent(ability.getSourceId()); + if (permanent != null && permanent instanceof PermanentCard) { + PermanentCard leveler = (PermanentCard) permanent; + // check already existing Level counters and compare to maximum that make sense + if (permanent.getCounters().getCount(CounterType.LEVEL) >= leveler.getMaxLevelCounters()) { + removeAbility(ability); + } + } + } + } + } +} diff --git a/Mage.Server/plugins/mage-player-ai-ma.jar b/Mage.Server/plugins/mage-player-ai-ma.jar index ea051d4d1da068385dc90fb44c761f2977e9e05f..c2468a1b93c0fcdca131d3dbe3d9762625722464 100644 GIT binary patch delta 20114 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 delta 16698 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 diff --git a/Mage.Tests/plugins/mage-player-ai-ma.jar b/Mage.Tests/plugins/mage-player-ai-ma.jar index 0f416d0b87a356b4677b608cc1987ae05715a492..c2468a1b93c0fcdca131d3dbe3d9762625722464 100644 GIT binary patch delta 20114 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 delta 16698 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