Вот чего написалось в итоге (во вложении).
Основная идея такая - при нажатии кнопки с буквами находим перебором все возможные комбинации этих букв и проверяем - нет ли в словаре слов, начинающихся с такой комбинации. Если есть - добавляем комбинацию в список возможных вариантов. При нажатии следующей буквы повторяем цикл сначала.
Словарь представляет собой простой текстовый файл, одна строчка - одно слово. Имя словаря такое же как у exe-файла с расширением ".dic". Обязательно в словаре должен быть алфавит:
а
б
..
я
Остальные слова можно вбивать какие хотите.
После первого использования программы строчки в словаре приобретут вид "x;str", где "x" - эмпирическая частота использования слова, "str" - само слово. При этом в словарь по-прежнему можно добавлять слова.
Частота определяется эмпирически - т.е. чем чаще слово используется в наборе, тем "выше" оно всплывает в словаре. Таким образом, наиболее употребимые слова будут предлагаться чаще. Слово считается использованным если нажат пробел или точка.
Тут есть еще над чем поработать - когда длина слова приближается к 10, поиск заметно тормозит. Т.е. надо бы оптимизировать, но, поскольку такой производственной необходимости у меня нет, то и не буду
Интересная задачка, спасибо.