From bde583d3818ca9fb706fa7aa02ff017143cc6843 Mon Sep 17 00:00:00 2001 From: moomarc Date: Fri, 19 Jul 2013 15:07:42 +0000 Subject: [PATCH] - Moved evaluateBoardState to ComputerUtil from ComputerUtilCard --- .../forge/card/ability/ai/ChoosePlayerAi.java | 4 +- src/main/java/forge/game/ai/ComputerUtil.java | 36 ++++++++++++++++++ .../java/forge/game/ai/ComputerUtilCard.java | 37 ------------------- 3 files changed, 38 insertions(+), 39 deletions(-) diff --git a/src/main/java/forge/card/ability/ai/ChoosePlayerAi.java b/src/main/java/forge/card/ability/ai/ChoosePlayerAi.java index 69be6489c1b..5e110bdee57 100644 --- a/src/main/java/forge/card/ability/ai/ChoosePlayerAi.java +++ b/src/main/java/forge/card/ability/ai/ChoosePlayerAi.java @@ -4,7 +4,7 @@ import java.util.List; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.ai.ComputerUtilCard; +import forge.game.ai.ComputerUtil; import forge.game.player.Player; public class ChoosePlayerAi extends SpellAbilityAi { @@ -50,7 +50,7 @@ public class ChoosePlayerAi extends SpellAbilityAi { List prefChoices = choices; prefChoices.removeAll(ai.getOpponents()); if (!prefChoices.isEmpty()) { - chosen = ComputerUtilCard.evaluateBoardPosition(prefChoices); + chosen = ComputerUtil.evaluateBoardPosition(prefChoices); } if (chosen == null) { System.out.println("No good curse choices. Picking first available: " + choices.get(0)); diff --git a/src/main/java/forge/game/ai/ComputerUtil.java b/src/main/java/forge/game/ai/ComputerUtil.java index 9790c9a79bd..e52b9aa399b 100644 --- a/src/main/java/forge/game/ai/ComputerUtil.java +++ b/src/main/java/forge/game/ai/ComputerUtil.java @@ -1685,4 +1685,40 @@ public class ComputerUtil { || type == CounterType.PARALYZATION || type == CounterType.SHELL || type == CounterType.SLEEP || type == CounterType.SLEIGHT || (type == CounterType.TIME && !c.isInPlay()) || type == CounterType.WAGE; } + + /** + *

+ * evaluateBoardPosition. + *

+ * + * @param listToEvaluate + * a list of players to evaluate. + * @return a Player. + */ + public static Player evaluateBoardPosition(final List listToEvaluate) { + Player bestBoardPosition = listToEvaluate.get(0); + int bestBoardRating = 0; + + for (final Player p : listToEvaluate) { + int pRating = p.getLife() * 3; + pRating += p.getLandsInPlay().size() * 2; + + for (final Card c : p.getCardsIn(ZoneType.Battlefield)) { + pRating += ComputerUtilCard.evaluateCreature(c) / 3; + } + + if (p.getCardsIn(ZoneType.Library).size() < 3) { + pRating /= 5; + } + + System.out.println("Board position evaluation for " + p + ": " + pRating); + + if (pRating > bestBoardRating) { + bestBoardRating = pRating; + bestBoardPosition = p; + } + } + + return bestBoardPosition; + } } diff --git a/src/main/java/forge/game/ai/ComputerUtilCard.java b/src/main/java/forge/game/ai/ComputerUtilCard.java index f05930c5f76..f255eef0ccc 100644 --- a/src/main/java/forge/game/ai/ComputerUtilCard.java +++ b/src/main/java/forge/game/ai/ComputerUtilCard.java @@ -32,7 +32,6 @@ import forge.deck.Deck; import forge.deck.DeckSection; import forge.game.combat.Combat; import forge.game.player.Player; -import forge.game.zone.ZoneType; import forge.item.PaperCard; import forge.util.Aggregates; @@ -822,40 +821,4 @@ public class ComputerUtilCard { } }; - /** - *

- * evaluateBoardPosition. - *

- * - * @param listToEvaluate - * a list of players to evaluate. - * @return a Player. - */ - public static Player evaluateBoardPosition(final List listToEvaluate) { - Player bestBoardPosition = listToEvaluate.get(0); - int bestBoardRating = 0; - - for (final Player p : listToEvaluate) { - int pRating = p.getLife() * 3; - pRating += p.getLandsInPlay().size() * 2; - - for (final Card c : p.getCardsIn(ZoneType.Battlefield)) { - pRating += ComputerUtilCard.evaluateCreature(c) / 3; - } - - if (p.getCardsIn(ZoneType.Library).size() < 3) { - pRating /= 5; - } - - System.out.println("Board position evaluation for " + p + ": " + pRating); - - if (pRating > bestBoardRating) { - bestBoardRating = pRating; - bestBoardPosition = p; - } - } - - return bestBoardPosition; - } - }