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;
|
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;
|
Resolver resolver;
|
||||||
try {
|
try {
|
||||||
resolver = ScrabbleUtils.loadResolver(language);
|
resolver = ScrabbleUtils.loadResolver(language);
|
||||||
@@ -58,7 +58,7 @@ public class DictionaryBuilder {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return null;
|
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();
|
private final static Options options = configParameters();
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
//achilst
|
||||||
final CommandLineParser parser = new DefaultParser();
|
final CommandLineParser parser = new DefaultParser();
|
||||||
CommandLine firstLine = null;
|
CommandLine firstLine = null;
|
||||||
try {
|
try {
|
||||||
@@ -38,6 +38,7 @@ public class Main {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
CommandLine line = parser.parse(options, args);
|
CommandLine line = parser.parse(options, args);
|
||||||
|
System.out.println(line.getArgList());
|
||||||
if( line.hasOption( "build" ) ) {
|
if( line.hasOption( "build" ) ) {
|
||||||
generate(line);
|
generate(line);
|
||||||
} else {
|
} else {
|
||||||
@@ -81,10 +82,13 @@ public class Main {
|
|||||||
final String language = line.getOptionValue("lang", "");
|
final String language = line.getOptionValue("lang", "");
|
||||||
final int min = Integer.parseInt(line.getOptionValue("min", "3"));
|
final int min = Integer.parseInt(line.getOptionValue("min", "3"));
|
||||||
final int max = Integer.parseInt(line.getOptionValue("max", "7"));
|
final int max = Integer.parseInt(line.getOptionValue("max", "7"));
|
||||||
|
char[] letters = null;
|
||||||
|
if( line.getArgList().size() == 1 ) {
|
||||||
|
letters = line.getArgList().get(0).toCharArray();
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
manageLanguage(language);
|
manageLanguage(language);
|
||||||
Enigma enigma = DictionaryBuilder.generateEnigma(language, min, max);
|
Enigma enigma = DictionaryBuilder.generateEnigma(language, min, max, letters);
|
||||||
System.out.println(enigma);
|
System.out.println(enigma);
|
||||||
} catch(IllegalArgumentException e) {
|
} catch(IllegalArgumentException e) {
|
||||||
System.err.println(e.getMessage());
|
System.err.println(e.getMessage());
|
||||||
@@ -140,7 +144,7 @@ public class Main {
|
|||||||
.argName("max")
|
.argName("max")
|
||||||
.required(false)
|
.required(false)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
final Options options = new Options();
|
final Options options = new Options();
|
||||||
|
|
||||||
options.addOption(buildOption);
|
options.addOption(buildOption);
|
||||||
|
|||||||
@@ -47,12 +47,13 @@ public class Resolver implements Serializable {
|
|||||||
return this.statistics;
|
return this.statistics;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Enigma generateEnigma(int minimalLettersCount, int maximalLettersCount) {
|
public Enigma generateEnigma(int minimalLettersCount, int maximalLettersCount, char[] letters) {
|
||||||
boolean mustRun = false;
|
boolean mustRun = false;
|
||||||
char[] letters;
|
|
||||||
Map<Integer, List<String>> allWords;
|
Map<Integer, List<String>> allWords;
|
||||||
do {
|
do {
|
||||||
letters = getRandomSet(maximalLettersCount);
|
if( letters == null ) {
|
||||||
|
letters = getRandomSet(maximalLettersCount);
|
||||||
|
}
|
||||||
allWords = getWords(letters, minimalLettersCount);
|
allWords = getWords(letters, minimalLettersCount);
|
||||||
|
|
||||||
int wordsCount = 0;
|
int wordsCount = 0;
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user