Pull to refresh

Comments 9

> В следующей статье я рассмотрю реализацию на C с ncurses, распределенной памятью, семафорами и блекджеком.

/usr/games/boggle что ли?
Статья напомнила мне мой похожий проект на AppEngine + ExtJS. Я писал его под влиянием этих многочисленных телешоу, где нужно собрать слово из букв, приведенных на экране. Порылся в исходниках и нашел его. Нужно всего-лишь вписать буквы, из которых требуется составить слово, и AppEngine вернет все возможные варианты. Для моего словаря требуется примерно 10-15 секунд на поиск слов. Проект писался быстро, поэтому получился стандартный говнокод. Если немного оптимизировать, то получится сделать поиск быстрее.

Попробовать можно тут: word-constructor.appspot.com/
Ваше приложение на любой запрос выдает «Ничего не найдено»
Наверное, тормозит в этом случае не руби, а доступ к базе. Не вижу причин не держать все слова в памяти.
Почему бы не организовать словарь в виде дерева из букв? Тогда по нему можно ходить параллельно с игровым полем и прекращать поиск в тот момент, когда нет возможных переходов по дереву.
Работать будет знаааачительно быстрее.
Я думаю, что быстрее было бы пройтись по всем словам и проверить, подходит ли слово под сетку.
UFO landed and left these words here
Почему бы не хранить входные данные в двумерном массиве?

Я тут запустил немного изменил Ваш код, запустил на таблице 100x100 и было сделано 205530 вызовов print_word — т.е. столько раз вызвался метод split. Программа работала порядка 15 минут.

Если хранить данные в двумерном массиве, то отрабатывает за 23 секунды.
Sign up to leave a comment.

Articles