Я писатель про заек.
Предлагаю к рассмотрению проект текстовой игрушечки, в которой вместо стандартного ввода слов (что в случае русского языка, на мой взгляд, чересчур усложняет игровой процесс) в качестве парсеров используются условные знаки.
Единственный вопрос, занимающий меня в рамках форума - это в каком интерпретаторе лучше делать подобную разработку, и как примерно будет выглядеть код? Любому, кому будет интересно откликнуться, буду очень признателен, поскольку себя самого назвать программистом могу с большой натяжкой.
———————-
Итак, запускаем игру. Выдаётся текст:
На полянке Алиса (1), Коля Герасимов(2), Маша(3) и Корней Чуковский (4). Кем хотите играть сейчас?
Как игроку, мне предлагается увидеть эту полянку глазами любого из этих персонажей. Для этого у меня в распоряжении есть парсер #. Формат его использования (#<номер персонажа>).
Смотрим "глазами Алисы": #1.
(Снова выводится перечисление объектов под номерами). Но теперь уже видны предметы.
Солнечная полянка! Алиса обводит мир загадочными детскими глазами, и видит, что пространство с ней разделяет Коля Герасимов(2), Маша(3) и Корней Чуковский (4). На подстилке (5) лежит печенье (6) и чайник (7).
Дальше, мы в качестве Алисы хотим рассмотреть поближе, к примеру, Колю Герасимова. Для этого у нас есть универсальный парсер @. (при желании, сам парсер можно глобально заменить на иной символ, но это не суть важно.)
Итак, смотрим.
@ 2
Коля Герасимов - мальчик не из робкого десятка. Сейчас он сидит напротив Алисы и смотрит на неё выразительными глазами. На шее у него бабочка. (Жирным шрифтом дан текст, описывающий Состояние объекта Коля на данный момент в глазах Алисы. Оно может меняться. Вопрос: где мне задавать это состояние, в описании объекта Алиса когда я задаю всё, что она видит в разные моменты игры, или в описании объекта "Коля"?)
Дальше, нам в качестве Алисы может захотеться спросить Колю о чём-либо. Пусть список тем для разговора ограничится тем, что Алиса видит вокруг себя. Для общения станем пользоваться двумя парсерами, ! и ?;. Первый для восклицательного обращения, а второй для вопросительного . То есть это по сути эквиваленты команд "сказать персонажу о чем-то" и" спросить персонажа о чем-то".
! 2 4 (сказать Коле о Корнее Чуковском.)
"Ах, что за славные люди, эти детские писатели!" говорит Алиса Коле. "Да? " - сомневается Коля. " А по-моему они все слегка сумасшедшие!
(хотелось бы предусмотреть хотя бы две различные реакции на одинаковое обращение к персонажу. То есть, во второй раз Коля ответил бы как-нибудь по-другому. При этом после определённого ответа Корней Чуковский изменяет своё "состояние". Kак мне это сделать?)
? 2 6 (спросить Колю о печенье)
"А что, Коля, неужели ты не знаешь, что сладкое портит зубы?" интересуется Алиса. " Вот еще выдумки!" отвечает Коля. " От сладкого крепнет уверенность в сегодняшнем дне!" Коля встаёт и идёт к реке. (последнее - это перемена состояния Коли. Он уходит.)
(Кстати, о репликах. Например, я задаю строки ответов на вопросы и восклицания в целом виде, а программа при выводе разбивает их более "литературно". Я задал строку "Вот еще выдумки! От сладкого крепнет уверенность в сегодняшнем дне!" а программа вставляет между предложениями "отвечает Коля" или "интересуется Алиса". Как мне это сделать?)
(продолжение следует)
Неактивен
Общий комментарий.
Брось ты это дело разработки нового парсера с нуля! Как я уже писал однажды, для этого нужно иметь: квалификацию, время, усердие. Оригинальные ТАДС и ИНФОРМ, например, доводились до уме несколько лет профессиональными программистами! При этом, создание библиотек — самое сложное и трудоемкое дело. Не веришь, что это так сложно и долго: см. сюда: https://forum.ifiction.ru/viewtopic.php?id=465 Или вообще возьми всю тему: https://forum.ifiction.ru/viewforum.php?id=11 – "Разработка русской IF платформы" – долгострой на долгострое.
Выбери годами проверенные платформы: РТАДС или ИНФОРМ.
qwerty написал:
мысли такие:
1 на флеше уже есть парсерный квест
… со всеми недостатками самодельного парсера! Я уверен, не стоит этим заниматься. Изучение (даже самое пристальное и детальное) уже готовой системы ИЛ займет у тебя гораздо меньше времени и не будет обречено на провал, чем создание _еще одного_ самодельного парсера. Лучше потрать время более продуктивно: написанием конкретным игры для вполне конкретного конкурса.
Неактивен