В основном меня попросили создать игру с маленькими буквами, в которой пользователь выбирает некоторые гласные и согласные, и они добавляются в список массивов, как только это произошло, мы должны распечатать содержимое списка массивов, например, это может выглядеть это [T, S, I, L, Y, A, R, R, A], а затем мы побуждаем игрока вводить слова, которые, по их мнению, они могут сделать из данного списка символов. Я ищу несколько указателей, чтобы убедиться, что пользователь может использовать только символы, а также как сравнить их ответ со словарным файлом. Единственный код, который я до сих пор читал в моем словаре. Любая помощь будет принята с благодарностью.
try {
BufferedReader reader = new BufferedReader(new FileReader("dictionary.txt"));
String line = reader.readLine();
List<String> words = new ArrayList<String>();
while (line != null) {
String[] wordsLine = line.split(" ");
for (String word : wordsLine) {
words.add(word);
}
line = reader.readLine();
}
System.out.println("Here is your board again: " + genString + "\n");
System.out.println("Please enter your answer!\n");
} catch (Exception e) {
System.out.println(e);
}
genString - это мой, каков будет список символов, и мне еще нужно поместить сканер для ввода пользователя.
Основная идея заключается в том, чтобы вводить символы из пользовательского ввода в какую-либо коллекцию, а затем итерации над символами слова и проверки против этой коллекции. Наконец, если все кошерное, найдите слово в словаре.
List<Character> charsFromUser = new LinkedList<Character>();
Set<String> dictionary = new HashSet<String>();
boolean illegalCharUsed = false;
boolean done = false;
String wordFromUser = null;
// dictionary = // fill dictionary
// charsFromUser = // get chars from user
// wordFromUser = // get word from user
for (int i = 0, l = wordFromUser.length(); i < l && !illegalCharUsed; ++i) {
char c = wordFromUser.charAt(i);
if (!charsFromUser.contains(c)) {
illegalCharUsed = true;
} else {
charsFromUser.remove(Character.valueOf(c)); // remove this line if
// users may reuse letters
}
}
if (!dictionary.contains(wordFromUser)) {
if (!illegalCharUsed && charsFromUser.isEmpty()) { // isEmpty check if users
// must use all letters
System.out.println("well done");
} else {
System.out.println("you didn't use the correct characters");
}
} else {
System.out.println("not a legal word");
}