Browse Source

Feature: resolve enigma from command line

Febbweiss 8 năm trước cách đây
mục cha
commit
17e41487a0

+ 2 - 2
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);
 	}
 
 

+ 8 - 4
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);

+ 4 - 3
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<Integer, List<String>> allWords;
 		do {
-			letters = getRandomSet(maximalLettersCount);
+			if( letters == null ) {
+				letters = getRandomSet(maximalLettersCount);
+			}
 			allWords = getWords(letters, minimalLettersCount);
 
 			int wordsCount = 0;

BIN
src/main/resources/resolvers/french