Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
08.01.2006 18:02

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Новый движок для создания текстовых квестов.

Появилась довольно смелая идея. Написать новый движок для создания текстовых квестов. Что-то наподобие URQ. Но более простой и удобный. Опыт в создание интерпритаторов уже есть. Кое-какие нароботки есть, но до готовой версии далеко... Так вот главная проблема - это решение, как будет выглядеть сам язык. Если кто-нибудь хочет помочь советом, пишите письма.

Я тут немного подумал, над тем как будет выглядеть программа и пришёл к такому варианту(просто пример):

Код:

//#TQ_PROJECT 
/* 
  Пример многострочного комментария. 

  Пример простейшей программы квеста. 
  Автор: haM3r 
  E-mail: bvlad36@bk.ru 
*/ 

// Пример подключения дополнительной библиотеки. 
// Проект можно разбивать отдельные на файлы. 
 #include "scene_1.tq"; 
 #include "scene_2.tq"; 
 #include "scene_3.tq"; 


/* 
  Пример работы с #define. 
  #define - автозамена текста. Довольно полезная вещь. 
  Можно сказать  #define "btn", "button"; и использовать 
  во всей программе заместо button - btn. 
*/ 
 #define "btn", "button"; 



//———————————————————————- 
/* 
  Пример локации. 
  Локация должна начинаться со слова location или room 
  и заканчиваться end. 
  <main> - указывает на то, что с этой локации начинает 
  работать программа. 
*/ 
location [first_location] <main> 

   // Устанавливаем цвет текста. 
   textcolor 5; 

   // Проиграть звуковой wav файл. 
   play "sound.wav"; 

   // Вывод сообщения на экран. 
   print "Первая локацияn"; 

      button room_1, "@Wкомната-1"; 
      button room_2, "@Bкомната-2"; 
      button room_3, "@Rкомната-3"; 
end; 

//———————————————————————- 

room [room_1] 
   // Проигрывание звукового сигнала. 
   beep; 

   print "В комнате 1 вас убили!n", 
         "Какая досада!n", 
         "Попробуйте ещё раз.n"; 

   // Заснуть на 1 секунду. 
   sleep 1000; 

   // Выход из программы. 
   exit; 
end; 


procedure getkey 
   print "Press any key..."; 

   // Считывание клавиши. 
   key = readkey; 

   print "key = ", key; 
end; 

room [room_2] 
   // Отчистка экрана. 
   cls; 

   // Вызов процедуры. 
   call getkey; 

   // Сохранение состояния программы. 
   save; 

   btn first_location, "Назад"; 
end; 


room [room_3] 
   a = 10; 
   b = "test"; 
   print "This is" + b + "n"; 


   :label_1 
   // Пример цикла.    
   while (a > 0) 
   { 
      print a, "n" 

      // Пример условного оператора. 
      if (a == 3) 
      { 
         print "That's All!n"; 
         break; 
      } 
      a = a - 1; 
   } 

   if (a > 0) 
      goto label_1; 

   exit; 
end; 

Неактивен

0    0    #2
09.01.2006 10:33

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

Re: Новый движок для создания текстовых квестов.

На мой взгляд, более-менее серьёзное будущее есть только у движка, ориентированного не на программистов, а на э-э-э... людей, более близких к литературе...

Неактивен

0    0    #3
09.01.2006 11:50

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

Re: Новый движок для создания текстовых квестов.

Занимаюсь именно этим...
Главное — использование в синтаксисе русского языка. Касательно всего остального: ориентация на объекты, нетипизированные переменные, наличие у объектов (помимо свойств и методов) ещё и событий и т.п.
Ветка, посвящённая моим изысканиям: https://forum.ifiction.ru/viewtopic.php?id=467

Неактивен

0    0    #4
09.01.2006 16:25

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

Re: Новый движок для создания текстовых квестов.

Пока увы... Нечего.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru