Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
15.06.2009 23:10

aash29
Участник (+3)
Зарегистрирован: 28.08.2007
Сообщений: 46

z-машина в составе другой программы

Есть мысль использовать модель мира из IF в другой программе (искусственный интеллект). Как бы это лучше было сделать? Скомпилировать интерпретатор как длл?

Неактивен

0    0    #2
21.06.2009 18:58

ASBer
Модератор (+160, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: z-машина в составе другой программы

Врядли это сработает.
Модели мира в ИФ весьма упрощены и специализированы именно под игры.
Но если есть желание повозиться с длл попробуй подключить tom.dll
На все вопросы отвечу.

Отредактировано ASBer (21.06.2009 19:00)

Неактивен

0    0    #3
22.06.2009 18:23

aash29
Участник (+3)
Зарегистрирован: 28.08.2007
Сообщений: 46

Re: z-машина в составе другой программы

Традиционные в классическом планировании модели куда более условны, так что проблемы в этом быть не должно. ТОМ я скачал, но не нашел к нему заголовочных файлов и какой-нибудь справки, только примеры игр. Наилучшим был бы запуск интерпретатора и передача ему команд от сторонней программы, что-нибудь похожее можно реализовать?

Неактивен

0    0    #4
22.06.2009 21:05

ASBer
Модератор (+160, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: z-машина в составе другой программы

На Вике есть исходник консольного интерфейса
http://ifwiki.ru/files/ConTOM_s.rar
можно делать по аналогии.

здесь зачатки документации.

Передачу интерпретатору команд делать можно и нужно smile

Отредактировано ASBer (22.06.2009 21:08)

Неактивен

0    0    #5
23.06.2009 08:50

aash29
Участник (+3)
Зарегистрирован: 28.08.2007
Сообщений: 46

Re: z-машина в составе другой программы

спасибо, попробую разобраться

Неактивен

0    0    #6
23.06.2009 10:31

ASBer
Модератор (+160, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: z-машина в составе другой программы

Вообще все что нужно, это:

- Подключить tom.dll и его функции:
  char* RunFile(char*FileName);
  char* RunText(char*Statement);
  char* Command(char*Input);

- далее юзать эти функции:
  RunFile()
  - Выполняет скрипт из указанного файла.
  - Возвращает текст, сгенерированный при выполненнии скрипта.
  RunText() 
  - Вычисляет выражение или выполняет скрипт переданный в строке.
  - Возвращает результат вычисления. Текст сгенерированный при выполненнии скрипта пишется в лог.
  Command()
  - Выполняет команды на русском языке.
  - Возвращает текст, сгенерированный при выполненнии команды.

Неактивен

0    0    #7
24.06.2009 18:26

aash29
Участник (+3)
Зарегистрирован: 28.08.2007
Сообщений: 46

Re: z-машина в составе другой программы

Пока не получилось вызвать, использовал FFI  под Allegro Lisp

(use-package 'ff)
(load "C:/Downloads/ConTOM_s/ConTOM/tom.dll")
def-foreign-call (RunFile "RunFile" :object) ((FileName (* :char))) :strings-convert t :returning ((* :char)));
(RunFile "C:/Downloads/ConTOM_s/ConTOM/Mouses.tom")

Attempt to call #<Vector @ #x20e6599a> for which the definition has not yet been (or is no longer) loaded.

Неактивен

0    0    #8
24.06.2009 19:40

ASBer
Модератор (+160, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: z-машина в составе другой программы

в Лиспе не силен, но может быть нужно указывать имя функции точно так как указано в dll ?

def-foreign-call (RunFile "@RunFile$qpc" :object)

Неактивен

0    0    #9
25.06.2009 08:27

aash29
Участник (+3)
Зарегистрирован: 28.08.2007
Сообщений: 46

Re: z-машина в составе другой программы

получилось, спасибо огромное! теперь повожусь

Неактивен

0    0    #10
23.10.2009 11:24

ASBer
Модератор (+160, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: z-машина в составе другой программы

aash29, а чем все закончилось? есть ли какие результаты?

Неактивен

Powered by PunBB
© copyright 2001–2022 iFiction.Ru