diff --git a/src/main/java/fr/pavnay/scrabble/DictionaryBuilder.java b/src/main/java/fr/pavnay/scrabble/DictionaryBuilder.java index 083811d..45125f3 100644 --- a/src/main/java/fr/pavnay/scrabble/DictionaryBuilder.java +++ b/src/main/java/fr/pavnay/scrabble/DictionaryBuilder.java @@ -50,7 +50,7 @@ public class DictionaryBuilder { return resolver; } - public static Enigma generateEnigma(String language, int minLength, int maxLength) { + public static Enigma generateEnigma(String language, int minLength, int maxLength, char[] letters) { Resolver resolver; try { resolver = ScrabbleUtils.loadResolver(language); @@ -58,7 +58,7 @@ public class DictionaryBuilder { e.printStackTrace(); return null; } - return resolver.generateEnigma(minLength, maxLength); + return resolver.generateEnigma(minLength, maxLength, letters); } diff --git a/src/main/java/fr/pavnay/scrabble/Main.java b/src/main/java/fr/pavnay/scrabble/Main.java index 2a43cf5..b87cff2 100644 --- a/src/main/java/fr/pavnay/scrabble/Main.java +++ b/src/main/java/fr/pavnay/scrabble/Main.java @@ -19,7 +19,7 @@ public class Main { private final static Options options = configParameters(); public static void main(String[] args) { - + //achilst final CommandLineParser parser = new DefaultParser(); CommandLine firstLine = null; try { @@ -38,6 +38,7 @@ public class Main { try { CommandLine line = parser.parse(options, args); + System.out.println(line.getArgList()); if( line.hasOption( "build" ) ) { generate(line); } else { @@ -81,10 +82,13 @@ public class Main { final String language = line.getOptionValue("lang", ""); final int min = Integer.parseInt(line.getOptionValue("min", "3")); final int max = Integer.parseInt(line.getOptionValue("max", "7")); - + char[] letters = null; + if( line.getArgList().size() == 1 ) { + letters = line.getArgList().get(0).toCharArray(); + } try { manageLanguage(language); - Enigma enigma = DictionaryBuilder.generateEnigma(language, min, max); + Enigma enigma = DictionaryBuilder.generateEnigma(language, min, max, letters); System.out.println(enigma); } catch(IllegalArgumentException e) { System.err.println(e.getMessage()); @@ -140,7 +144,7 @@ public class Main { .argName("max") .required(false) .build(); - + final Options options = new Options(); options.addOption(buildOption); diff --git a/src/main/java/fr/pavnay/scrabble/Resolver.java b/src/main/java/fr/pavnay/scrabble/Resolver.java index a95f6b9..1b79dfb 100644 --- a/src/main/java/fr/pavnay/scrabble/Resolver.java +++ b/src/main/java/fr/pavnay/scrabble/Resolver.java @@ -47,12 +47,13 @@ public class Resolver implements Serializable { return this.statistics; } - public Enigma generateEnigma(int minimalLettersCount, int maximalLettersCount) { + public Enigma generateEnigma(int minimalLettersCount, int maximalLettersCount, char[] letters) { boolean mustRun = false; - char[] letters; Map> allWords; do { - letters = getRandomSet(maximalLettersCount); + if( letters == null ) { + letters = getRandomSet(maximalLettersCount); + } allWords = getWords(letters, minimalLettersCount); int wordsCount = 0; diff --git a/src/main/resources/resolvers/french b/src/main/resources/resolvers/french index d7771dd..be4d598 100644 Binary files a/src/main/resources/resolvers/french and b/src/main/resources/resolvers/french differ