|
4 января в 01:39
|
|
|
# -*- coding: utf-8 -*-
# fanfic_customizer_engine.py # Интерактивный движок для персонализации фанфика "Хвост Феи" # ВНИМАНИЕ: Содержит высшую магию программирования и чистую сатиру. import random import sys import time class ReaderProfile: """Класс для хранения профиля читателя-мага.""" def __init__(self): self.name = "Путник" self.gender = "существо" self.age = 18 self.appearance = "загадочная аура" self.magic_type = "Слабая телекинезия" self.romantic_preference = "не определено" # Наша "небольшая база данных" типичных свойств MAGIC_DB = { "Огненная": ["Пламя саламандры", "Искры гнева", "Дыхание дракона"], "Водяная": ["Приливная волна", "Ледяная стрела", "Водяной кокон"], "Небесная": ["Небесный кнут", "Воздушный поток", "Барьер Аэра"], "Теневой захват": ["Теневой клинок", "Шепот тьмы", "Прыжок сквозь тень"], "Боевые искусства": ["Железный кулак", "Удар гора", "Небесный свод"] } APPEARANCE_DB = { "М": ["короткие взъерошенные волосы", "суровый шрам на щеке", "пронзительный взгляд"], "Ж": ["длинные блестящие волосы", "загадочная улыбка", "грациозная осанка"], "Другое": ["волосы цветов заката", "глаза, меняющие цвет", "символ магии на руке"] } DIALOG_DB = { "Нацу": ["Давай сразись!", "Я голоден...", "Это для гильдии!"], "Люсия": ["Это неприлично!", "Мой акваметер!", "Я пишу об этом в романе."], "Грей": ["Мне холодно... или жарко?", "Разденьтесь до пояса!", "Ледяной клеймо!"] } def run_initial_profiling(): """Скрипт, опрашивающий читателя (как и требовалось).""" print("=" * 50) print("ДВИЖОК ПЕРСОНАЛИЗАЦИИ FANFIC.EXE") print("Инициализация протокола 'Хвост Феи: Твоя История'...") time.sleep(1) print("\n>>> Добро пожаловать, будущий маг гильдии 'Хвост Феи'!") print(">>> Для полного погружения ответьте на вопросы.") print("=" * 50) profile = ReaderProfile() # Вопрос 1: Имя while True: name = input("\n1. ВВЕДИТЕ ВАШЕ МАГИЧЕСКОЕ ИМЯ (до 20 символов): ").strip() if name and len(name) <= 20: profile.name = name break else: print("СИСТЕМА Ошибка валидации. Имя не может быть пустым или таким длинным.") # Вопрос 2: Пол print("\n2. ВАШ БИОЛОГИЧЕСКИЙ ПОЛ (для корректной романтической линии):") print(" М - Мужской") print(" Ж - Женский") print(" Д - Другое/Магическое существо") while True: gender_input = input("Ваш выбор (М/Ж/Д): ").upper().strip() if gender_input in ["М", "Ж", "Д"]: gender_map = {"М": "М", "Ж": "Ж", "Д": "Другое"} profile.gender = gender_map[gender_input] break else: print("СИСТЕМА Неопознанный параметр. Используйте М, Ж или Д.") # Вопрос 3: Возраст while True: try: age = int(input("\n3. ВАШ ВОЗРАСТ (цифрами, от 14 до 100): ")) if 14 <= age <= 100: profile.age = age break else: print("СИСТЕМА Возраст за пределами допустимого диапазона для стажёра-мага.") except ValueError: print("СИСТЕМА Требуется число. Вы же не младенец и не древний дракон?") # Вопрос 4: Внешность (с "подсказкой" из БД) print(f"\n4. ОПИШИТЕ КЛЮЧЕВУЮ ЧЕРТУ ВАШЕЙ ВНЕШНОСТИ.") print(f" Подсказка от системы: для вашего пола типичны - {random.choice(APPEARANCE_DB[profile.gender])}") appearance = input("Ваше описание: ").strip() profile.appearance = appearance if appearance else "магическая аура, сбивающая с толку" # Вопрос 5: Стиль магии print("\n5. ВЫБЕРИТЕ СТИЛЬ МАГИИ (введите номер):") magic_types = list(MAGIC_DB.keys()) for i, magic in enumerate(magic_types, 1): print(f" I. MAGic") while True: try: choice = int(input("Ваш выбор (1-5): ")) if 1 <= choice <= len(magic_types): profile.magic_type = magic_types[choice - 1] break else: print("СИСТЕМА Такой магии ещё не изобрели в Фиоре.") except ValueError: print("СИСТЕМА Это не магическое число.") # "Секретный" вопрос для романтической линии print("\n[ОПЦИОНАЛЬНО] Для кастомизации диалогов:") print("Кто из членов гильдии вам наиболее интересен?") print(" 1. Нацу (огненный и прямой)") print(" 2. Люсия (водная и эмоциональная)") print(" 3. Грей (ледяной и... раздевающийся)") print(" 4. Пропустить (романтика - это не про магию)") romance_choice = input("Ваш выбор (1-4): ").strip() romance_map = {"1": "Нацу", "2": "Люсия", "3": "Грей", "4": None} profile.romantic_preference = romance_map.get(romance_choice, None) print("\n" + "=" * 50) print("СИСТЕМА Профилирование завершено!") print(f" Имя: {profile.name}") print(f" Магия: {profile.magic_type}") print(f" Возраст: {profile.age}") print(f" Особость: {profile.appearance}") print("=" * 50) print(">>> Генерация персонализированной истории...") time.sleep(2) return profile def generate_fanfic_chapter(profile): """Генерирует главу фанфика с подстановкой значений из профиля.""" print("\n" + "=" * 50) print(f"ГЛАВА 1: {profile.name} и вступление в гильдию") print("=" * 50) # Выбор случайной фразы для магии из базы данных magic_phrase = random.choice(MAGIC_DB.get(profile.magic_type, ["Удар магией!"])) fanfic_text = f""" Солнце ярко светило над Магнолией. {profile.name}, в свои {profile.age} лет, стоял(а) перед величественным зданием гильдии «Хвост Феи». Ваши(а) {profile.appearance} привлекали(а) любопытные взгляды прохожих. — Неужели я нашёл(нашла) своё место? — прошептал(а) вы. Внезапно дверь гильдии с грохотом распахнулась, и на улицу вылетел Нацу Драгнил, окутанный облаком дыма и пламени. — А-а-а! Снова проиграл(а) Эрзе! — кричал он. Прямо за ним выбежала Люсия, размахивая своим ключом. — Нацу! Ты испортил(а) мой новый топ! Тебе это дорого обойдётся! Она заметила {profile.name} и на мгновение замерла. — О, новый лицо? И что это за {profile.appearance}? Выглядит... мощно. Изнутри, мерзнущий, вышел Грей. — Ребята, что за шум? — Он взглянул на вас. — Хм, {profile.name}, да? Чувствуется сила {profile.magic_type.lower()}. Неплохо. Но лёд всё равно круче. Мастер Макаров выглянул из окна второго этажа с кружкой пива. — О-хо-хо! Кажется, у нас новый потенциальный член! {profile.name}, покажи(те) нам, на что способна твоя магия типа «{profile.magic_type}»! Вы глубоко вздохнули(вздохнула) и сконцентрировались. — {magic_phrase}! — крикнул(а) вы, выпуская заряд магической энергии. {random.choice(DIALOG_DB["Нацу"])} — прокричал Нацу, прыгая от возбуждения. {random.choice(DIALOG_DB["Люсия"])} — вздохнула Люсия, делая заметку в дневнике. {random.choice(DIALOG_DB["Грей"])} — заявил Грей, в очередной раз теряя свою одежду. Мастер Макаров засмеялся. — Отлично! С сегодняшнего дня ты официальный член гильдии «Хвост Феи»! Добро пожаловать в семью, {profile.name}! """ # Добавляем романтический намёк, если выбрана предпочтение if profile.romantic_preference: fanfic_text += f""" Вы почувствовали(а), как ваше сердце забилось чуть чаще, когда посмотрели на {profile.romantic_preference}. Возможно, это начало не только магического, но и романтического приключения...""" else: fanfic_text += """ Вы ощутили(а) тепло и радость. Это была ваша новая семья. И это было только начало.""" print(fanfic_text) print("\nСИСТЕМА Глава завершена. Для продолжения купите ключ (500 голд) для Главы 2:") print(" 'Битва с {random.choice(['Фантом Лордом', 'Лакси', 'Гилдаром'])}'") print("=" * 50) def main(): """Главная функция, запускающая весь процесс.""" try: print("Загрузка магических скриптов...") time.sleep(1) profile = run_initial_profiling() generate_fanfic_chapter(profile) # Сохранение в "базу данных" - файл with open("reader_profile.json", "w", encoding="utf-8") as f: # Упрощённое сохранение f.write(f"# Профиль читателя для интерактивного фанфика\n") f.write(f"Имя: {profile.name}\n") f.write(f"Тип магии: {profile.magic_type}\n") f.write(f"Романтический интерес: {profile.romantic_preference}\n") f.write(f"# Конец профиля. Не удалять! Нужно для DLC.\n") print("\nСИСТЕМА Ваш профиль сохранён в 'reader_profile.json'.") print(" Спасибо за использование Fanfic Customizer Engine v1.0!") print(" P.S. Это всё шутка. Или нет?") except KeyboardInterrupt: print("\n\nСИСТЕМА Прервано пользователем. Магия рассеялась.") sys.exit(0) if __name__ == "__main__": main() 4 |
|