Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
20.12.2002 01:35

psycho
Участник
Зарегистрирован: 24.12.2002
Сообщений: 14

Парсер на VB6 для тэстинга :)

Доброго вам времени суток!

Я давольно давно (с перерывами, правда) слежу за этим форумом и сайтом taplap.ru, качаю периодически статьи. Только вот всё времени не было как следует занятся всем этим. sad А вчера сел-таки... Вытащил из закромов всю инфу по IF, которую собирал по всему рунету около года и сел разбираться. Проглядел имеющиеся исходники игр, мало чего понял. Всё, что смог разобрать было давным давно известно по практикуму в создании текстовых движков с менюшным вводом (коих в моих закромах порядка дюжины smile). А вот как такового IF-движка с вводом команд как-то не получалось...

Начал копаться в статьях, тоже мало чего полезного... И тут наткнулся на статью Olegus'a, которую скачал с сайта taplap.ru. Алгоритм был расписан очень подробно и ясно. Чтож, решено, взялся делать...

Примерно через пол-часа мой VB6 уже исправно повторял всё описанное в статье, а именно: правильно разбирал фразу на составляющие, если она была построена по определённым правилам, описанным в статье. Например, что глагол должен всегда стоять до существительных.

"Блин!" - подумал я. - "Обломно, как-то!" И сел дорабатывать... Ещё через пол часа диких экспериментов и всяческого рода извращений движок стал забивать на порядок слов, лишь бы сама фраза была понятна человеку. smile Написал функции загрузки словаря и отдельных таблиц для глаголов (точь в точь по статье). Ну и собственно хочу вынести на ваш суд то, что у меня вышло.

Словарь пока состоит лишь из слов, содержащихся в фразе "привязать лошадь верёвкой к забору". Но я думаю он будет пополняться уже специально для определённых игр.

Формат словарей и таблиц открытый. Описание внутри, так что можете сами добавлять новые слова и тэстить! Я её тэстил только той фразой, что приведена выше, так что если выдруг всплывёт какая-нибудь недоделка, сообщите плиз...

Архив с парсером: СКАЧАТЬ - ~14Kb
Архив содержит:
      /Parser.exe - откомпилированный парсер
      /Parser.vbp - файл проекта VB6
      /frm/Form1.frm - форма проекта VB6
      /bas/Parser.bas - модуль проекта VB6, в котором и содержиться основная часть... smile
      /dict/dict_0.dct - словарь (обычный текстовый файл)
      /table/table_0.tbl - таблица для слова привязать. В данной таблице описана первая строка таблицы, которая приведена в статье

Спасибо : Olegus'у, за статью : taplap.ru, за многое : Solitary Pilgrim'у, за великую и прекрасну серию игр ZOMBIE : всем, кто играет в IF и тем самым не даёт расслабляться авторам и прорграммистам :

Неактивен

0    0    #2
23.12.2002 07:26

Olegus t.Gl.
Участник (+1073, -250)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2904
Вебсайт

Re: Парсер на VB6 для тэстинга :)

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

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru