mirror of
https://github.com/Febbweiss/scrabble-resolver.git
synced 2026-03-04 22:25:36 +00:00
Feature: resolve enigma from command line
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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 {
|
||||
if( letters == null ) {
|
||||
letters = getRandomSet(maximalLettersCount);
|
||||
}
|
||||
allWords = getWords(letters, minimalLettersCount);
|
||||
|
||||
int wordsCount = 0;
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user