mtg-genetic-deckbuilding

Generating and improving Magic: The Gathering decks using a genetic algorithm
git clone https://kevincorvisier.fr/git/mtg-genetic-deckbuilding.git
Log | Files | Refs | LICENSE

commit ee0c1ac74664832f2b0b9da8e65ed313336adb0c
parent 55b755dac1e6cb79d64565f1b2bbb50669c9dee6
Author: Kevin Corvisier <git@kevincorvisier.fr>
Date:   Fri, 22 Nov 2024 16:25:46 +0900

Code clean-up
Diffstat:
Mpom.xml | 5+++++
Msrc/main/java/fr/kevincorvisier/mtg/gdb/GuiFake.java | 56++++++++++++++++++++++++++++----------------------------
Msrc/main/java/fr/kevincorvisier/mtg/gdb/ai/GeneticAlgorithm.java | 2+-
Msrc/main/java/fr/kevincorvisier/mtg/gdb/utils/RandomDeckGenerator.java | 7++++---
4 files changed, 38 insertions(+), 32 deletions(-)

diff --git a/pom.xml b/pom.xml @@ -78,6 +78,11 @@ <artifactId>commons-compress</artifactId> <version>1.27.1</version> </dependency> + <dependency> + <groupId>jakarta.validation</groupId> + <artifactId>jakarta.validation-api</artifactId> + <version>2.0.2</version> + </dependency> <dependency> <groupId>ch.qos.logback</groupId> diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/GuiFake.java b/src/main/java/fr/kevincorvisier/mtg/gdb/GuiFake.java @@ -58,21 +58,21 @@ public abstract class GuiFake implements IGuiBase } @Override - public void invokeInEdtNow(Runnable runnable) + public void invokeInEdtNow(final Runnable runnable) { // TODO Auto-generated method stub } @Override - public void invokeInEdtLater(Runnable runnable) + public void invokeInEdtLater(final Runnable runnable) { // TODO Auto-generated method stub } @Override - public void invokeInEdtAndWait(Runnable proc) + public void invokeInEdtAndWait(final Runnable proc) { // TODO Auto-generated method stub @@ -86,98 +86,98 @@ public abstract class GuiFake implements IGuiBase } @Override - public ISkinImage getSkinIcon(FSkinProp skinProp) + public ISkinImage getSkinIcon(final FSkinProp skinProp) { // TODO Auto-generated method stub return null; } @Override - public ISkinImage getUnskinnedIcon(String path) + public ISkinImage getUnskinnedIcon(final String path) { // TODO Auto-generated method stub return null; } @Override - public ISkinImage getCardArt(PaperCard card) + public ISkinImage getCardArt(final PaperCard card) { // TODO Auto-generated method stub return null; } @Override - public ISkinImage getCardArt(PaperCard card, boolean backFace) + public ISkinImage getCardArt(final PaperCard card, final boolean backFace) { // TODO Auto-generated method stub return null; } @Override - public ISkinImage createLayeredImage(PaperCard card, FSkinProp background, String overlayFilename, float opacity) + public ISkinImage createLayeredImage(final PaperCard card, final FSkinProp background, final String overlayFilename, final float opacity) { // TODO Auto-generated method stub return null; } @Override - public void showBugReportDialog(String title, String text, boolean showExitAppBtn) + public void showBugReportDialog(final String title, final String text, final boolean showExitAppBtn) { // TODO Auto-generated method stub } @Override - public void showImageDialog(ISkinImage image, String message, String title) + public void showImageDialog(final ISkinImage image, final String message, final String title) { // TODO Auto-generated method stub } @Override - public int showOptionDialog(String message, String title, FSkinProp icon, List<String> options, int defaultOption) + public int showOptionDialog(final String message, final String title, final FSkinProp icon, final List<String> options, final int defaultOption) { // TODO Auto-generated method stub return 0; } @Override - public String showInputDialog(String message, String title, FSkinProp icon, String initialInput, List<String> inputOptions, boolean isNumeric) + public String showInputDialog(final String message, final String title, final FSkinProp icon, final String initialInput, final List<String> inputOptions, final boolean isNumeric) { // TODO Auto-generated method stub return null; } @Override - public <T> List<T> getChoices(String message, int min, int max, Collection<T> choices, T selected, Function<T, String> display) + public <T> List<T> getChoices(final String message, final int min, final int max, final Collection<T> choices, final T selected, final Function<T, String> display) { // TODO Auto-generated method stub return null; } @Override - public <T> List<T> order(String title, String top, int remainingObjectsMin, int remainingObjectsMax, List<T> sourceChoices, List<T> destChoices) + public <T> List<T> order(final String title, final String top, final int remainingObjectsMin, final int remainingObjectsMax, final List<T> sourceChoices, final List<T> destChoices) { // TODO Auto-generated method stub return null; } @Override - public String showFileDialog(String title, String defaultDir) + public String showFileDialog(final String title, final String defaultDir) { // TODO Auto-generated method stub return null; } @Override - public File getSaveFile(File defaultFile) + public File getSaveFile(final File defaultFile) { // TODO Auto-generated method stub return null; } @Override - public void download(GuiDownloadService service, Callback<Boolean> callback) + public void download(final GuiDownloadService service, final Callback<Boolean> callback) { // TODO Auto-generated method stub @@ -191,21 +191,21 @@ public abstract class GuiFake implements IGuiBase } @Override - public void showCardList(String title, String message, List<PaperCard> list) + public void showCardList(final String title, final String message, final List<PaperCard> list) { // TODO Auto-generated method stub } @Override - public boolean showBoxedProduct(String title, String message, List<PaperCard> list) + public boolean showBoxedProduct(final String title, final String message, final List<PaperCard> list) { // TODO Auto-generated method stub return false; } @Override - public PaperCard chooseCard(String title, String message, List<PaperCard> list) + public PaperCard chooseCard(final String title, final String message, final List<PaperCard> list) { // TODO Auto-generated method stub return null; @@ -226,35 +226,35 @@ public abstract class GuiFake implements IGuiBase } @Override - public void copyToClipboard(String text) + public void copyToClipboard(final String text) { // TODO Auto-generated method stub } @Override - public void browseToUrl(String url) throws IOException, URISyntaxException + public void browseToUrl(final String url) throws IOException, URISyntaxException { // TODO Auto-generated method stub } @Override - public IAudioClip createAudioClip(String filename) + public IAudioClip createAudioClip(final String filename) { // TODO Auto-generated method stub return null; } @Override - public IAudioMusic createAudioMusic(String filename) + public IAudioMusic createAudioMusic(final String filename) { // TODO Auto-generated method stub return null; } @Override - public void startAltSoundSystem(String filename, boolean isSynchronized) + public void startAltSoundSystem(final String filename, final boolean isSynchronized) { // TODO Auto-generated method stub @@ -296,21 +296,21 @@ public abstract class GuiFake implements IGuiBase } @Override - public void runBackgroundTask(String message, Runnable task) + public void runBackgroundTask(final String message, final Runnable task) { // TODO Auto-generated method stub } @Override - public String encodeSymbols(String str, boolean formatReminderText) + public String encodeSymbols(final String str, final boolean formatReminderText) { // TODO Auto-generated method stub return null; } @Override - public void preventSystemSleep(boolean preventSleep) + public void preventSystemSleep(final boolean preventSleep) { // TODO Auto-generated method stub diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/ai/GeneticAlgorithm.java b/src/main/java/fr/kevincorvisier/mtg/gdb/ai/GeneticAlgorithm.java @@ -129,7 +129,7 @@ public class GeneticAlgorithm implements Reloadable /** * Reload decks/card pool files to account for changes - * + * * @throws IOException */ @Override diff --git a/src/main/java/fr/kevincorvisier/mtg/gdb/utils/RandomDeckGenerator.java b/src/main/java/fr/kevincorvisier/mtg/gdb/utils/RandomDeckGenerator.java @@ -68,8 +68,9 @@ public class RandomDeckGenerator private void increaseCardCountToPool(final Map<String, Integer> deckCards) { - for (final String cardName : deckCards.keySet()) + for (final Entry<String, Integer> entry : deckCards.entrySet()) { + final String cardName = entry.getKey(); if (isBasicLand(cardName)) continue; @@ -78,7 +79,7 @@ public class RandomDeckGenerator return; final int maxCount = cardPool.getMaxCount(cardName); - final int currentCount = deckCards.get(cardName); + final int currentCount = entry.getValue(); if (maxCount > currentCount) { @@ -92,7 +93,7 @@ public class RandomDeckGenerator private void increaseBasicLands(final Map<String, Integer> deckCards) { final Map<String, Integer> basics = deckCards.entrySet().stream().filter(card -> isBasicLand(card.getKey())) - .collect(Collectors.toUnmodifiableMap(card -> card.getKey(), card -> card.getValue())); + .collect(Collectors.toUnmodifiableMap(Entry::getKey, Entry::getValue)); final int totalBasics = count(basics); final int newTotalBasics = totalBasics + (60 - count(deckCards));