Показать сообщение отдельно
Старый 13.09.2017, 19:07
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 27  
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
Wolsh, ну ты просто добрый волшебник! Я как раз начал задумываться о том, как можно технологично предусмотреть подстановку строковых переменных в заранее созданные куски текста. Спасибо.

Скажи, а добавлять в текст заготовки под будущую подстановку значений в виде *$n1 *$N1 - это чисто твой креатив или подобный формат *$ - результат требований AC3 или какого-либо соглашения, принятого среди программистов?

Код AS3:
public static function getText(episode:int, character:String) : String
		{
			var text:String = EPISODES_TEXT[episode];
			for (var i:uint = 0; i < 6; i++)
			{
				text = text.replace("*$n" + i, Names.getName(character, Names.FIRST_NAME, i));
				text = text.replace("*$N" + i, Names.getName(character, Names.FAMILY_NAME, i));
			}
			return text;
		}
И ещё мне показалось, что в твоей программе падежи перепутались. Ведь при обращении к getName именно по i определяется падеж, в котором нужно возвращать имя. А они тупым перебором в цикле стоят - на выходе будет хрень.

Цитата:
А я бы не советовал настолько обесчеловечивать код. И да, я бы не хранил "локации" даже в одном классе с "именами фамилиями кличками".
Не совсем понял, что ты подразумеваешь под "обесчеловечиванием" кода и почему ты не стал бы хранить "локации" и "имена" в одном классе. Я рассуждал так. Если у нас есть определённое количество имён существительных в единственном числе (имена, наименования свойств персонажей и вещей, названия локаций и многое другое), которые должны выдаваться в нужном падеже в самых разных ситуациях, то почему бы их не забить все в единый класс? Ведь механизм хранения и методы выдачи - идентичные. Дальше только идентификаторы выставляй. А введя осмысленные константы на уровне всей программы (статические переменные класса GlobalValues), я гарантированно не запутаюсь. Ибо задав единожды CHARACTER_HERO:String = "hero", я использую эту константу при создании персонажа в качестве идентификатора, поставлю её же в массив, хранящий имена, буду по нему обращаться в любом месте программы...