# Практика работы с функциями и объектами ## Задания ## Задание 1: Сражение с драконом ### Организовать ввод данных с помощью функции `prompt`: - `name` — имя героя (строка) - `age` — возраст героя (число) - `hasSwordLicense` — наличие лицензии на меч (boolean) - `hasArmor` — наличие брони (boolean) - `powerLevel` — уровень силы героя (число от 1 до 100) ### Пример использования функции `prompt` ```javascript hero.name = prompt("Введите имя героя: "); hero.age = Number(prompt("Введите ваш возраст: ")) ``` ### Создайте объект `hero` со свойствами и методами: ```javascript Свойства объекта hero: - name - age - hasSwordLicense - hasArmor - powerLevel - canFight() - getBattleResult() - calculatePoints() - getTitle() ``` ### Проверьте допуск к бою - Если герой не допущен, выведите сообщение: ```javascript <имя>, вы слишком слабы и не можете участвовать в бою! ``` - Если допущен, выведите: ```javascript <имя>, вы допущены к бою с драконом! <результат боя> ``` ### Выведите очки георя и его титул После боя (или даже если герой проиграл) выведите: ```javascript Ваши очки героя: <heroPoints> Ваш титул: <title> ``` ### Пример работы программы ```javascript Введите ваше имя: Артур Введите ваш возраст: 20 Есть ли у вас лицензия на меч? (true/false): true Есть ли у вас броня? (true/false): true Введите уровень вашей силы (1-100): 100 Артур, вы допущены к бою с драконом! Поздравляем! Вы победили дракона! Ваши очки героя: 140 Ваш титул: Легендарный герой ``` ## Задание 2: Выполнение квестов В этом задании вы создадите систему, которая моделирует работу таверны, где герой может выполнять квесты, зарабатывать золото и прокачивать свой уровень. ### Задачи: 1. Добавьте в вашем объекте `hero` следующие свойства: - `level` - уровень героя (Number) - `gold` - количество имеющегося золота - `completedQuests` - массив выполненных квестов (изначально пустой) и методы: - `addQuest(questName, reward)` - добавляет квест в список выполненных и увеличивает золото на reward - `levelUp()` - повышение уровеня игрока на 1 - `showStats()` - вывод информации о героя (имя, возраст, уровень, уровень силы, сколько золота, количество выполненных квестов) 1. **Создайте массив квестов** Пример: ```javascript const quests = [ { name: "Убить крыс в подвале", reward: 5 }, { name: "Спасти кота из дерева", reward: 10 }, { name: "Сопроводить торговца", reward: 20 }, { name: "Победить гоблинов", reward: 50 }, { name: "Разгадать древнюю загадку", reward: 70 }, ] ``` 2. **Реализуйте цикл выполнения квестов** - Герой проходит все квесты по очереди - После каждого квесты - золото увеличивается, квест добавляется в список - Если количество золота превышает 50 - герой повышает уровень 3. **Выведите результат работы** После выполнения всех квестов: - Вывести список всех выполненных квестов - Вывести итоговое количество золота - Вывести уровень героя ### Пример работы программы ```javascript Введите имя героя: Артур --- Герой приступает к квестам --- Квест выполнен: Убить крыс в подвале (+5 золота) Квест выполнен: Спасти кота из дерева (+10 золота) Квест выполнен: Сопроводить торговца (+20 золота) 🎉 Герой повышает уровень! Квест выполнен: Победить гоблинов (+50 золота) 🎉 Герой повышает уровень! Квест выполнен: Разгадать древнюю загадку (+70 золота) 🎉 Герой повышает уровень! --- Результат --- Имя: Артур Возраст: 20 Уровень: 3 Уровень силы: 80 Золото: 155 Количество выполненных квестов: 5 ```