Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

Нужен способ получения случайных английских слов. Как лучше это реализовать?

#c_sharp #unity3d #словари


Делаю игру, развивающую скорость печать(знаю, такие уже есть). Понимаю, что нужен
файл либо база данных слов, как именно это лучше реализовать, и где можно скачать подобные
словари?
    


Ответы

Ответ 1



Реализация: Самое простое, что приходит в голову это хранить слова в txt файле. Загружаем строку из файла. Разбиваем ее в зависимости от разделителя для слов, который был использован. Складываем это все в массив и дальше пользуемся как угодно. Скачать: Есть частотные словари, вот например такой http://www.wordfrequency.info/100k.asp

Ответ 2



Списки слов есть в интернете, и легко гуглятся. Поэтому вы можете подсчитать общее количество слов/строк в файле, и в нужный момент просто брать строку со случайным номером. Небольшой трюк состоит в том, что обычно искать строку по номеру невозможно без предварительного чтения всех предыдущих строк. Чтобы обойти это, подсчитайте максимальную длину слова в вашем файле, и дополните все слова пробелами до этой максимальной ширины. Теперь ваши строки все одинакового размера (разумеется, если вы используете Encoding.Unicode, а не Encoding.UTF8: английские слова могут содержать символы вне ASCII), и вы можете просто найти смещение начала строки в файле. Ну или если в вашем словаре несчастных 20 тысяч слов (размером со словарный запас Пушкина), можно не париться с оптимизацией хранения, и считать весь словарь в память один раз при старте программы.

Комментариев нет:

Отправить комментарий