2012-06-28 1 views
4

Мне нужно написать программу палача, Только «дом» злой и меняет слово, поэтому игрок (надеюсь) теряет.Хранение данных для программы злобного палача

Я создам набор всех слов в начале игры, когда игрок выберет букву, я создам набор, соответствующий шаблону, и продолжу создание оптимального подмножества.

, например

Предполагая, что пользователь выбирает 3 буквы слова, и для этого примеры ради мы будем говорить есть только следующие 3 буквенных слов в английском языке; Dog Fog And Fox Cat Not Bus

Если пользователь Guesses «o», программа скомпилирует список слов без «o» в них, я отсортирую этот список в наборах «и» другой «автобус» и другой «кот»

Однако мне было интересно, какой лучший способ будет хранить эти наборы.

+0

Какой набор вы имеете в виду? –

+0

Я в замешательстве. Итак, если слово меняется, что происходит с буквами, которые уже правильно догадались? Или они меняются вокруг позиций для нового слова? – Drizzt321

+0

Что вы подразумеваете под логикой? Каким образом дом меняет слово? Примеры помогут здесь. Наконец, то, как вы это делаете, изменит идеальный способ хранения слов. – JPvdMerwe

ответ

2

В качестве предложения подумайте о том, какую операцию вам необходимо эффективно поддерживать. Вам нужно будет иметь возможность взять слово, сопоставить его со своим семейством слов и оттуда, чтобы распространить это слово на собрание слов, соответствующих этому семейству. Для этого рассмотрите возможность использования чего-то вроде Map, который будет ассоциировать семейство слов (представленное, как вам угодно) с набором слов, соответствующих этому семейству. Вы можете представить коллекцию разными способами: как Set, так и List и т. Д. Таким образом, вы можете легко взять строку, преобразовать ее в семейство слов, а затем сопоставить семейство слов с множеством всех слов в этом семьи.

Надеюсь, это поможет!

1

Позвольте мне перефразировать то, что вы делаете:

  1. У вас есть набор слов для определенной длины.
  2. Каждый раз, когда пользователь указывает символ, вы хотите удалить из текущего набора все слова, в которых есть этот символ, без опорожнения набора.

Необязательно, чтобы быть еще больше зол:

  1. Если ваш набор теперь пуст, вы хотите, чтобы выбрать из исходного набора слов наибольшего подмножества слов, имеющих заданный символ в том же индекс.

Это что вы хотите сделать?

Если да, я бы подумал о том, что вы собираетесь делать много.

Данный текстовый файл содержит большой список слов. Сначала я должен был бы составить список наборов слов, разделенных длиной символа.

Как только вы дублируете этот набор, вы можете начать запрашивать у пользователя определенные символы. Когда символы предоставлены, вы должны удалить слова в наборе, которые содержат этот символ.

Итак, как вы можете видеть, наивный подход к решению этого вопроса состоял в том, чтобы перебирать все слова в наборе и повторять через символы, чтобы увидеть, содержит ли он указанный символ.

Лучшим способом может быть сложение слов символами, которые они содержат. Удачи!

+1

Имейте в виду, что *, которые * буквы хранятся, - это не вся история; вы должны отслеживать *, где * они также хранятся. Если вы прекомпретируете все, это будет использовать * много * памяти. – templatetypedef

Смежные вопросы