Read rankings from cache instead of reading file every time.

This commit is contained in:
asepetci
2014-02-17 11:03:45 +00:00
parent 2feac87574
commit 72aefc9152
3 changed files with 5 additions and 13 deletions

View File

@@ -16,8 +16,8 @@ import forge.gui.toolbox.FOptionPane;
import forge.gui.toolbox.itemmanager.ItemManagerConfig;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.limited.DraftRankCache;
import forge.limited.LimitedPoolType;
import forge.limited.ReadDraftRankings;
import forge.limited.SealedCardPoolGenerator;
import forge.limited.SealedDeckBuilder;
import forge.properties.ForgePreferences.FPref;
@@ -233,8 +233,6 @@ public enum CSubmenuSealed implements ICDoc {
}
static class DeckComparer implements java.util.Comparator<Deck> {
ReadDraftRankings ranker = new ReadDraftRankings();
public double getDraftValue(Deck d) {
double value = 0;
double divider = 0;
@@ -248,8 +246,8 @@ public enum CSubmenuSealed implements ICDoc {
for (Entry<PaperCard, Integer> kv : d.getMain()) {
PaperCard evalCard = kv.getKey();
int count = kv.getValue();
if (ranker.getRanking(evalCard.getName(), evalCard.getEdition()) != null) {
double add = ranker.getRanking(evalCard.getName(), evalCard.getEdition());
if (DraftRankCache.getRanking(evalCard.getName(), evalCard.getEdition()) != null) {
double add = DraftRankCache.getRanking(evalCard.getName(), evalCard.getEdition());
// System.out.println(evalCard.getName() + " is worth " + add);
value += add * count;
divider += count;

View File

@@ -51,7 +51,6 @@ public class BoosterDraftAI {
private final List<List<PaperCard>> deck = new ArrayList<List<PaperCard>>();
private final ArrayList<DeckColors> playerColors = new ArrayList<DeckColors>();
private ReadDraftRankings draftRankings;
// roughly equivalent to 25 ranks in a core set, or 15 ranks in a small set
private static final double TAKE_BEST_THRESHOLD = 0.1;
@@ -132,7 +131,7 @@ public class BoosterDraftAI {
private List<Pair<PaperCard, Double>> rankCards(final Iterable<PaperCard> chooseFrom) {
List<Pair<PaperCard, Double>> rankedCards = new ArrayList<Pair<PaperCard,Double>>();
for (PaperCard card : chooseFrom) {
Double rkg = draftRankings.getRanking(card.getName(), card.getEdition());
Double rkg = DraftRankCache.getRanking(card.getName(), card.getEdition());
if (rkg != null) {
rankedCards.add(MutablePair.of(card, rkg));
} else {
@@ -174,9 +173,6 @@ public class BoosterDraftAI {
this.deck.add(new ArrayList<PaperCard>());
this.playerColors.add(new DeckColors());
}
// Initialize card rankings
this.draftRankings = new ReadDraftRankings();
} // BoosterDraftAI()
/**

View File

@@ -40,8 +40,6 @@ public class LimitedDeckBuilder extends DeckGeneratorBase{
private Iterable<PaperCard> onColorCreatures;
private Iterable<PaperCard> onColorNonCreatures;
private static ReadDraftRankings draftRankings = new ReadDraftRankings();
private static final boolean logToConsole = false;
/**
@@ -677,7 +675,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase{
protected List<Pair<Double, PaperCard>> rankCards(Iterable<PaperCard> cards) {
List<Pair<Double, PaperCard>> ranked = new ArrayList<Pair<Double, PaperCard>>();
for (PaperCard card : cards) {
Double rkg = draftRankings.getRanking(card.getName(), card.getEdition());
Double rkg = DraftRankCache.getRanking(card.getName(), card.getEdition());
if (rkg != null) {
ranked.add(Pair.of(rkg, card));
} else {