Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.04.2019, 10:11
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 1  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 426
По умолчанию Символы для парсера

Друзья!

Я помню, этот вопрос уже мельком поднимался, но сейчас он окончательно передо мной встал, поэтому прошу совета.

В моей игре, сделанной в виде текстового квеста, подбор фраз - ключевой момент Вью, т.к. фактически это главный способ обратной связи. Изначально планировал формировать по кусочкам, но проблема возникает с их стыковкой с учётом родов/падежей, тавтологии, в общем, полный швах. Сейчас избрал другой подход - заранее заготавливать более крупные куски фраз, и снабжать их "тегами", увидив которые, парсер будет подменять их на более мелкие словесные вставки, обусловленные контекстом. Что-то типа:

%ACTOR_NAME% замахнулся и %ATTACK_STRENGTH% ударил врага %EQUIPPED|P5%

Таким образом, я рассчитываю получить более-менее связный текст с нужной степенью разнообразия. Вопрос. Каким образом вы порекомендуете обозначать начало и окончание каждого такого тега в тексте, чтобы не влепиться в какие-нибудь зарезервированные кем-то комбинации?

Спасибо.
__________________
Не сломано - не чини!

Старый 11.04.2019, 11:41
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 2  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,089
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Что такое зарезервированная комбинация? и кто в вашем проекте их резервирует?
__________________
местонахождение

Старый 11.04.2019, 12:00
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 3  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 426
Я имею в виду не в моём проекте, а в более широком пространстве: среда выполнения, операционка и т.п.
__________________
Не сломано - не чини!

Старый 11.04.2019, 12:34
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 4  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,089
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Или я вас не понимаю или вы что-то "накрутили" себе в голове
__________________
местонахождение

Старый 11.04.2019, 21:51
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,633
Записей в блоге: 4
Цитата:
Сообщение от Appleman Посмотреть сообщение
Я имею в виду не в моём проекте, а в более широком пространстве: среда выполнения, операционка и т.п.
Внутри строк нет ничего зарезервированного. Можно их вообще никак не обозначать специально.
Код AS3:
var someText:String = "SOME_ACTOR замахнулся на ANOTHER_ACTOR и ударил его";
// дальше получаешь нужный результат
someActor = someActore.replace("SOME_ACTOR", actor1Name).replace("ANOTHER_ACTOR", actor2Name);
Можешь и %% использовать с двух сторон. Это всё только для того, чтобы ты сам зрительно видел, что это именно переменная. Никакой роли это не играет. Кто-то делает, например {{someVar}} и парсят формат. В некоторых языках подобный функционал поддерживается из коробки (но не в ас3). Можешь не опасаться, что использование %% дернет какую-то переменную среды в системе) ас3 никуда просто так не вылезет из своей песочницы. Да и не только as3.
__________________
Ко мне можно и нужно обращаться на ты)

Старый 11.04.2019, 23:50
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 6  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 426
caseyryan, большое спасибо. Я именно об этом и спрашивал.

Твой вариант не пойдёт, т.к. конструкции могут быть разной длины. Например, прямо в тексте содержать вариант для мужского и женского рода. Поэтому потребуется чётко обозначать начало и конец фрагмента.
__________________
Не сломано - не чини!

Старый 12.04.2019, 09:23
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,633
Записей в блоге: 4
Я сразу не обратил внимание, что у тебя там составные переменные внутри. В этом случае тебе придется регулярками искать ограниченную с двух сторон часть, поэтому с % могут возникать проблемы, когда у тебя там будут показаны проценты, ну типа %FOR|VALUE%%. Лучше используй какой-то другой ограничитель, которого в простом тексте точно не будет. Например, {{тут составная переменная}} или <<тут составная переменная>>
Но, в принципе, можно проценты в тексте передавать как PERCENT, а потом уже менять на % при парсинге. В общем, вариантов решения можно придумать много
__________________
Ко мне можно и нужно обращаться на ты)

Старый 12.04.2019, 13:47
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 8  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 383
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
я что-то забыл, а в as3 разве нет такого синтаксиса, как в js
Код AS3:
var someText: String = `${ACTOR_NAME} замахнулся и ${ATTACK_STRENGTH} ударил врага ${this.getEQUIPPED()}`
?
__________________
while(live()) { hope(); }

Старый 12.04.2019, 13:59
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 9  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,089
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Интерполяции строк в as3 никогда не было.
__________________
местонахождение

Старый 03.07.2019, 18:32
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 10  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 426
Друзья!

Посоветуйте, кто сталкивался, самому лениво думать. Я разобрался с регулярками для подстановки имён персонажей и наименований действий в нужных падежах и т.п.

Теперь возник вопрос с вёрсткой. Какой-то текст нужно выделить жирным, другой - "покрасить" в цвет персонажа. Пока планирую повторить разметку html с тегами в угловых скобках. В частности, для жирного текста ставить теги <b> и </b>, а для текста главного героя ставить <pl> и </pl>. Что думаете по этому поводу?

Возможно, кто-то решал подобные задачи и нашёл более эффективный метод. Тексты живут в файлах XML.
__________________
Не сломано - не чини!

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.