ТОМ - платформа для текстовых игр

Объявление

Платформа ТОМ предназначена для создания текстовых игр на русском языке и имеет развитый парсер, позволяющий взаимодействовать с играми с помощью команд на близком к естественному языке. В данный момент активно разрабатывается версия ТОМ 2.
Последнюю версию платформы можно скачать здесь.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Формат файла tom.dic

Сообщений 1 страница 3 из 3

1

------------ заголовок ---------------
12 байт - версия ("2.a.3.3" + #0)
4 байта - размер загружаемой части файла ( = начала+окончания+матрица+списки)
4 байта - максимальная длина окончаний (обычно 6)
4 байта - количество окончаний (обычно около 450)
4 байта - максимальная длина начал (обычно 4)
4 байта - количество начал (обычно около 70)
4 байта - адресный шаг для списков (обычно 2)
4 байта - максимальный размер списка
4 байта - адресный шаг для статей
4 байта - максимальный размер словарной статьи
4 байта - максимальный размер оснований в словарной статье
------------ список начал -----------
N*L байт, где N = количество начал, L = максимальная длина начал
------------ список окончаний -----
N*L байт, где N = количество окончаний, L = максимальная длина окончаний
------------ матрица -----------------
(B+1)*(E+1)*2 байт, где B = количество начал, E = количество окончаний
------------ списки -------------------
размер не ограничен...
------------ статьи -------------------
размер не ограничен...

2

Алгоритм поиска примерно такой:

1. Находим номера начала и окончания слова (0 если пустое)
2. В матрице на пересечении начала и окончания находим 2х байтный адрес.
3. Если адрес указывает на статью
3.1 проверяем основу (то что осталось после отсечения начала и окончания) на соответствие статье.
3.2 если подошло возвращаем статью.
4. Если адрес указывает на список
4.1 проходим по списку, получая из него адреса статей.
4.2 каждую статью проверяем аналогично 3.1
4.3 возвращаем первую подходящую статью.

3

------------ заголовок --------------------------
12 байт - версия ("2.a.4.9")
4 байта - длина hash-таблицы
4 байта - сдвиг к окончаниям существительных
4 байта - сдвиг к словарным статьям
4 байта - адресный шаг для статей
------------ hash-таблица ----------------------
Формат строки таблицы:
2 байта - hash-код
2 байта - адрес 1-й статьи
2 байта - адрес 2-й статьи (пустой адрес == FFFF)
2 байта - адрес 3-й статьи (пустой адрес == FFFF)
Количество строк указано в заголовке
----- список глагольных окончаний -----------
строки разделённые \0
конец списка - \0\0
----- список окончаний существительных-----
строки разделённые \0
конец списка - \0\0
------------ словарные статьи ------------------
размер не ограничен...