Доброго вам времени суток!
Я давольно давно (с перерывами, правда) слежу за этим форумом и сайтом taplap.ru, качаю периодически статьи. Только вот всё времени не было как следует занятся всем этим.
А вчера сел-таки... Вытащил из закромов всю инфу по IF, которую собирал по всему рунету около года и сел разбираться. Проглядел имеющиеся исходники игр, мало чего понял. Всё, что смог разобрать было давным давно известно по практикуму в создании текстовых движков с менюшным вводом (коих в моих закромах порядка дюжины
). А вот как такового IF-движка с вводом команд как-то не получалось...
Начал копаться в статьях, тоже мало чего полезного... И тут наткнулся на статью Olegus'a, которую скачал с сайта taplap.ru. Алгоритм был расписан очень подробно и ясно. Чтож, решено, взялся делать...
Примерно через пол-часа мой VB6 уже исправно повторял всё описанное в статье, а именно: правильно разбирал фразу на составляющие, если она была построена по определённым правилам, описанным в статье. Например, что глагол должен всегда стоять до существительных.
"Блин!" - подумал я. - "Обломно, как-то!" И сел дорабатывать... Ещё через пол часа диких экспериментов и всяческого рода извращений движок стал забивать на порядок слов, лишь бы сама фраза была понятна человеку.
Написал функции загрузки словаря и отдельных таблиц для глаголов (точь в точь по статье). Ну и собственно хочу вынести на ваш суд то, что у меня вышло.
Словарь пока состоит лишь из слов, содержащихся в фразе "привязать лошадь верёвкой к забору". Но я думаю он будет пополняться уже специально для определённых игр.
Формат словарей и таблиц открытый. Описание внутри, так что можете сами добавлять новые слова и тэстить! Я её тэстил только той фразой, что приведена выше, так что если выдруг всплывёт какая-нибудь недоделка, сообщите плиз...
Архив с парсером: СКАЧАТЬ - ~14Kb
Архив содержит:
/Parser.exe - откомпилированный парсер
/Parser.vbp - файл проекта VB6
/frm/Form1.frm - форма проекта VB6
/bas/Parser.bas - модуль проекта VB6, в котором и содержиться основная часть... ![]()
/dict/dict_0.dct - словарь (обычный текстовый файл)
/table/table_0.tbl - таблица для слова привязать. В данной таблице описана первая строка таблицы, которая приведена в статье
Спасибо : Olegus'у, за статью : taplap.ru, за многое : Solitary Pilgrim'у, за великую и прекрасну серию игр ZOMBIE : всем, кто играет в IF и тем самым не даёт расслабляться авторам и прорграммистам :
Неактивен
Что я хочу видеть в идеальной IF-игре?
1) Идею. Достало лазить по пещерам, спасаться от циклопов, бродить в виде зомби по лабиринту без малейшей логики... Должна быть идея, смысл всей игры. Хорошие книги от просто книг тем и отличаются, что они доносят идеи до читателя.
2) Логику. Практически во всех играх, что я играл, логика отсутствует напрочь. Одной из последних таких игр является "Приключение". Полный бред. (если кого интересует, могу привести примеры)
3) Паззлы. Без комментариев.
Вот чего не хватает нашим игрушкам. Пока ни одной такой замечено не было.
Отчаянный Дух (ОДИН)
Неактивен