Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
28.02.2006 16:39

b0n0b0
Участник
Зарегистрирован: 28.02.2006
Сообщений: 7

Алиса в Стране Почемутостей

Я писатель про заек.

Предлагаю к рассмотрению проект текстовой игрушечки, в которой вместо стандартного ввода слов (что в случае русского языка, на мой взгляд, чересчур усложняет игровой процесс) в качестве парсеров используются условные знаки.

Единственный вопрос, занимающий меня в рамках форума - это в каком интерпретаторе лучше делать подобную разработку, и как примерно будет выглядеть код? Любому, кому будет интересно откликнуться, буду очень признателен, поскольку себя самого назвать программистом могу с большой натяжкой.

———————-
Итак, запускаем игру. Выдаётся текст:
На полянке Алиса (1), Коля Герасимов(2), Маша(3) и Корней Чуковский (4). Кем хотите играть сейчас?

Как игроку, мне предлагается увидеть эту полянку глазами любого из этих персонажей. Для этого у меня в распоряжении есть парсер #. Формат его использования  (#<номер персонажа>).

Смотрим "глазами Алисы": #1.

(Снова выводится перечисление объектов под номерами). Но теперь уже видны предметы.
Солнечная полянка! Алиса обводит мир загадочными детскими глазами, и видит, что пространство с ней разделяет Коля Герасимов(2), Маша(3) и Корней Чуковский (4). На подстилке (5) лежит печенье (6) и чайник (7).

Дальше, мы в качестве Алисы хотим рассмотреть поближе, к примеру, Колю Герасимова. Для этого у нас есть универсальный парсер @. (при желании, сам парсер можно глобально заменить на иной символ, но это не суть важно.)
Итак, смотрим.

@ 2
Коля Герасимов - мальчик не из робкого десятка. Сейчас он сидит напротив Алисы и смотрит на неё выразительными глазами. На шее у него бабочка. (Жирным шрифтом дан текст, описывающий Состояние объекта Коля на данный момент в глазах Алисы. Оно может меняться. Вопрос: где мне задавать это состояние, в описании объекта Алиса когда я задаю всё, что она видит в разные моменты игры, или в описании объекта "Коля"?)

Дальше, нам в качестве Алисы может захотеться спросить Колю о чём-либо. Пусть список тем для разговора ограничится тем, что Алиса видит вокруг себя. Для общения станем пользоваться двумя парсерами, ! и ?;. Первый для восклицательного  обращения, а второй для вопросительного . То есть это по сути эквиваленты команд "сказать персонажу о чем-то" и" спросить персонажа о чем-то".

! 2 4 (сказать Коле о Корнее Чуковском.)
"Ах, что за славные люди, эти детские писатели!"  говорит Алиса Коле. "Да? " -  сомневается Коля. " А по-моему они все слегка сумасшедшие!
(хотелось бы предусмотреть хотя бы две различные реакции на одинаковое обращение к персонажу. То есть, во второй раз Коля ответил бы как-нибудь по-другому. При этом после определённого ответа Корней Чуковский изменяет своё "состояние".  Kак мне это сделать?)

? 2 6 (спросить Колю о печенье)
"А что, Коля, неужели ты не знаешь, что сладкое портит зубы?"   интересуется Алиса. " Вот еще выдумки!"  отвечает Коля. " От сладкого крепнет уверенность в сегодняшнем дне!"  Коля встаёт и идёт к реке.    (последнее - это перемена состояния Коли. Он уходит.)

(Кстати, о репликах. Например, я задаю строки ответов на вопросы и восклицания в целом виде, а программа при выводе разбивает их более "литературно". Я задал строку "Вот еще выдумки!  От сладкого крепнет уверенность в сегодняшнем дне!"  а программа вставляет между предложениями "отвечает Коля" или "интересуется Алиса". Как мне это сделать?)

(продолжение следует)

Неактивен

0    0    #2
02.03.2006 16:28

HIman
Участник (+1)
Откуда: St. Oskol
Зарегистрирован: 23.01.2003
Сообщений: 164
Вебсайт

Я выбираю QSP !

Re: Алиса в Стране Почемутостей

Привет!
>>>
Предлагаю к рассмотрению проект текстовой игрушечки, в которой вместо стандартного ввода слов (что в случае русского языка, на мой взгляд, чересчур усложняет игровой процесс) в качестве парсеров используются условные знаки.
<<<
Не есть хорошо  sad
>>>
Поэтому спасти "дело русской IF" может спасти только "очень простой парсер". 
<<<
Очень здравая мысль!  8)
Итак:
Теперь что из себя представляет "очень простой парсер" (далее ОПП), это глагол + существительное. Всё больше для счастья ничего не надо.

Какие можно добавить фичи:
1. распознавать первые 3-4 буквы, следовательно вводить слова целиком не обязательно.
2. распознавать до первого встреченого пробела то  будет глагол всё остальное существительное. Что это дает:
Можно вбить конрструкцию:
"открыть этот на вид очень тяжелый ящик"
парсер разберет
глагол=открыть
сущ = этот на вид очень тяжелый ящик
и если в описания ящика добавить эту строку то все будет работать...
Разумеется никто не будет так писать если черным по белому написано: в игре парсер разбирает предложения глагол+существительное

так вот для особо умных можно вбить на распознования существительного "ящик":
ящик
на ящик
в ящик
этот ящик
ящи (это фича №1 если надо распознвать 3 символа)
(следовательно нужно будет вбить с 3 символами и др формы например)
на ящи
в ящи
этот ящи
(а вот фича №2)
этот на вид очень тяжелый ящик
неподъемный ящик
большой ящик
зелелный ящик
и т.д.

После этого покажется что парсер очень умный стал, но он по прежнему распознает глаго+сущ

Если хочеться посмотреть реализацию на деле
см проект игры "Великая пустота 9"
day0.narod.ru

Удачи...

Неактивен

Powered by PunBB
© copyright 2001–2022 iFiction.Ru