From 982ee064a6d0956c057105f654f6508b24a7c97c Mon Sep 17 00:00:00 2001 From: magenoxx Date: Wed, 12 Jan 2011 09:34:11 +0300 Subject: [PATCH] [draft] now computer chooses 2 or 3 card colors to draft starting from 3d pick. --- .../java/mage/player/ai/ComputerPlayer.java | 110 +++++++++++++++--- .../java/mage/player/ai/utils/RateCard.java | 46 +++++++- Mage.Server/plugins/mage-player-ai.jar | Bin 36728 -> 39711 bytes 3 files changed, 136 insertions(+), 20 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index b8f453128c8..9c2e29a01e7 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -30,21 +30,12 @@ package mage.player.ai; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.Set; -import java.util.TreeMap; -import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; + +import mage.Constants; import mage.Constants.CardType; import mage.Constants.Outcome; import mage.Constants.RangeOfInfluence; @@ -118,6 +109,8 @@ public class ComputerPlayer> extends PlayerImpl i private transient List playableNonInstant = new ArrayList(); private transient List playableInstant = new ArrayList(); private transient List playableAbilities = new ArrayList(); + private transient List pickedCards; + private transient List chosenColors; public ComputerPlayer(String name, RangeOfInfluence range) { super(name, range); @@ -797,19 +790,108 @@ public class ComputerPlayer> extends PlayerImpl i Card bestCard = null; int maxScore = 0; for (Card card : cards) { - int score = RateCard.rateCard(card, null); + int score = RateCard.rateCard(card, chosenColors); if (bestCard == null || score > maxScore) { maxScore = score; bestCard = card; } } - System.out.println("[DEBUG] AI picked: " + bestCard.getName() + ", score=" + maxScore); + String colors = "not chosen yet"; + // remember card if colors are not chosen yet + if (chosenColors == null) { + rememberPick(bestCard, maxScore); + chosenColors = chooseDeckColorsIfPossible(); + } + if (chosenColors != null) { + colors = ""; + for (Constants.ColoredManaSymbol symbol : chosenColors) { + colors += symbol.toString(); + } + } + System.out.println("[DEBUG] AI picked: " + bestCard.getName() + ", score=" + maxScore + ", deck colors=" + colors); draft.addPick(playerId, bestCard.getId()); } catch (Exception e) { + e.printStackTrace(); draft.addPick(playerId, cards.get(0).getId()); } } + /** + * Remember picked card with its score. + * + * @param card + * @param score + */ + protected void rememberPick(Card card, int score) { + if (pickedCards == null) { + pickedCards = new ArrayList(); + } + pickedCards.add(new PickedCard(card, score)); + } + + /** + * Choose 2 deck colors for draft: + * 1. there should be at least 3 cards in card pool + * 2. at least 2 cards should have different colors + * 3. get card colors as chosen starting from most rated card + */ + protected List chooseDeckColorsIfPossible() { + if (pickedCards.size() > 2) { + // sort by score and color mana symbol count in descending order + Collections.sort(pickedCards, new Comparator() { + @Override + public int compare(PickedCard o1, PickedCard o2) { + if (o1.score.equals(o2.score)) { + Integer i1 = RateCard.getColorManaCount(o1.card); + Integer i2 = RateCard.getColorManaCount(o2.card); + return -i1.compareTo(i2); + } + return -o1.score.compareTo(o2.score); + } + }); + Set chosenSymbols = new HashSet(); + for (PickedCard picked : pickedCards) { + int differentColorsInCost = RateCard.getDifferentColorManaCount(picked.card); + // choose only color card, but only if they are not too gold + if (differentColorsInCost > 0 && differentColorsInCost < 3) { + // if some colors were already chosen, total amount shouldn't be more than 3 + if (chosenSymbols.size() + differentColorsInCost < 4) { + for (String symbol : picked.card.getManaCost().getSymbols()) { + symbol = symbol.replace("{", "").replace("}", ""); + if (RateCard.isColoredMana(symbol)) { + chosenSymbols.add(symbol); + } + } + } + } + // only two or three color decks are allowed + if (chosenSymbols.size() > 1 && chosenSymbols.size() < 4) { + List chosenColors = new ArrayList(); + for (String symbol : chosenSymbols) { + Constants.ColoredManaSymbol manaSymbol = Constants.ColoredManaSymbol.lookup(symbol.charAt(0)); + if (manaSymbol != null) { + chosenColors.add(manaSymbol); + } + } + if (chosenColors.size() > 1) { + // no need to remember picks anymore + pickedCards = null; + return chosenColors; + } + } + } + } + return null; + } + + private class PickedCard { + public Card card; + public Integer score; + public PickedCard(Card card, int score) { + this.card = card; this.score = score; + } + } + protected Attackers getPotentialAttackers(Game game) { logger.fine("getAvailableAttackers"); Attackers attackers = new Attackers(); diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java index 1e44bdece4b..9c40724eb0d 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java @@ -4,10 +4,7 @@ import mage.Constants; import mage.cards.Card; import java.io.InputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Scanner; +import java.util.*; /** * Class responsible for reading ratings from resources and rating gived cards. @@ -162,8 +159,45 @@ public class RateCard { * @param symbol * @return */ - private static boolean isColoredMana(String symbol) { - return symbol.equals("W") || symbol.equals("G") || symbol.equals("U") || symbol.equals("B") || symbol.equals("R"); + public static boolean isColoredMana(String symbol) { + String s = symbol; + if (s.length() > 1) { + s = s.replace("{","").replace("}",""); + } + if (s.length() > 1) { + return false; + } + return s.equals("W") || s.equals("G") || s.equals("U") || s.equals("B") || s.equals("R"); } + /** + * Return number of color mana symbols in manacost. + * @param card + * @return + */ + public static int getColorManaCount(Card card) { + int count = 0; + for (String symbol : card.getManaCost().getSymbols()) { + if (isColoredMana(symbol)) { + count++; + } + } + return count; + } + + /** + * Return number of different color mana symbols in manacost. + * @param card + * @return + */ + public static int getDifferentColorManaCount(Card card) { + Set symbols = new HashSet(); + for (String symbol : card.getManaCost().getSymbols()) { + if (isColoredMana(symbol)) { + symbols.add(symbol); + } + } + return symbols.size(); + } + } diff --git a/Mage.Server/plugins/mage-player-ai.jar b/Mage.Server/plugins/mage-player-ai.jar index ae4028c3bacf93b184ed64b45e77fc7c6319f983..7a6e68eb731d0a556743d6e3812f8ad840bb0aef 100644 GIT binary patch delta 23159 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 delta 20282 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 P2ciSTVPiiNdye=ga{7yl