![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Значит так. Думаю, это тема для товарища Utkin, любителя скоростной работы программы))))
Я написала прогу-игру, которая случайным образом выбирает слово из базы данных и выбрасывает на форму по 1 букве, а пользователь это слово собирает. База упорядочена по алфавиту, на каждую букву алфавита своя таблица. Имеется 3 уровня сложности по длине слова. Вот алгоритм: 1) Выкидывается случайное число от 1 до 2000 2) Находится данная запись в БД 3) Проверяется длина слова 4) Если длина не удовлетворяет установленной сложности, то повторяется с п.1. На сложном уровне слова из 8+ букв, а поскольку их не так много, то появляется заметная задержка около 0.2-0.4 сек. Как бы модифицировать этот алгоритм? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Может завести таблицы по длинам слова, а не по буквам алфавита? Насколько я понял, алфавит в игре роли не играет?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#3 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Вручную перелопатить 2000 слов - нудно) Можно это кодом сделать?
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Засунуть в Экзель сможешь? Там составь формулу по сортировке слов
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#5 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Я просто кроме БД в делфи ни с чем не работала...
Но редактировать в экселе - хорошая мысль. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Там не сложно. Перекиньте слова по ячейкам в один столбик (можно и в строку, но не удобно). Слева внесите формулу состоящее из условия ЕСЛИ, где в качестве условия проверяете длину слова, а возвращайте либо пустую строку либо само слово. В следующем столбце уже на один символ больше и т.д. Работа чисто механическая. Опять же с Экзеля в БД засунть удобно (ну в некоторые), есть вроде даже напрямую сохранить как файл БД...
Вот образец формулы: Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 11.11.2010 в 10:30. |
|
![]() |
![]() |
![]() |
#7 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Ы, база с тремя таблицами для 3 уровней сложности весит в 7 раз меньше прошлой))) Крутяк.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Нам интересна скорость работы... Изменяй алгоритм в соответствии с новыми условиями.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Если твоя БД поддерживает такое создай индексы по функциям длин слов - 8 индексов всего. Если не поддерживают сделай дополнительное поле, куда пихай длину слова - поиск по числу будет быстрее чем по строке - отсюда задержка уменьшится значительно.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#10 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
У меня для каждой записи - свой номер, по которому и идет поиск.
Теперь видимой задержки нет, спасибо за помощь. Обоим =) |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
оптимизация алгоритма выделения слов | furstenberg | Общие вопросы Delphi | 12 | 02.02.2010 07:44 |
Разработка алгоритма сортировки методом простых вставок Delphi | Hetsil | Помощь студентам | 0 | 12.12.2009 21:51 |
доработка алгоритма... | Sota | Помощь студентам | 2 | 13.06.2008 15:45 |
Изменения алгоритма | delphi_beginner | Общие вопросы Delphi | 2 | 13.05.2007 21:27 |