📸 Нужно решить свою задачу?
Загрузите фото — AI решит за секунды!
school Общие знания verified Решено AI

Создание Maven проекта Pkmn в IntelliJ IDEA: Пошаговое решение

calendar_today
schedule 4 мин. чтения
visibility 1 просмотр

Изображение задачи:
Нажмите для увеличения

В этом решении показано, как создать Maven проект 'Pkmn' в IntelliJ IDEA, настроить groupId и инициализировать Git репозиторий. Подробная инструкция для JDK 21.

check_circle

Подробное решение

Хорошо, давайте разберем эту задачу по разработке проекта. Подготовка проекта Для начала работы с проектом нужно его создать. В IntelliJ создайте новый проект со следующими настройками: Name: Pkmn Create Git repository (поставьте галочку) Build system: Maven JDK: 21 В Advanced Settings → groupId: ru.mirea.фамилия (вместо "фамилия" укажите свою фамилию) Система сборки Maven нам понадобится для добавления различных библиотек в проект в будущем. Репозиторий Git требуется для реализации версионности проекта и сохранения его на GitHub. Теперь иерархия папок проекта выглядит так: Pkmn .idea src main java resources test Исходный код с пакетами по умолчанию находится в каталоге java, а дополнительные ресурсы (файлы конфигурации, изображения и т.д.), в каталоге resources. Реализация UML диаграммы в коде Создайте структуру пакетов в каталоге java: ru.mirea.pkmn.фамилия. Внутри пакета pkmn необходимо создать набор классов, указанных на диаграмме. Обратите внимание, что EnergyType и PokemonStage объявляются не как class, а как enum! Так же, создайте во всех классах конструкторы, геттеры и сеттеры. К счастью, инструментарий IntelliJ позволяет автоматизировать этот процесс. Внутри класса нажмите ПКМ → Generate... → Constructor и создайте сначала конструктор со всеми полями, а затем пустой конструктор (Select None). Для геттеров и сеттеров похожая схема: ПКМ → Generate... → Getter and Setter. Дополнительно сгенерируйте toString() методы: ПКМ → Generate → toString Создайте дополнительно класс PkmnApplication в котором будет располагаться точка входа в программу. Самостоятельная работа Выполняйте эти задания внутри пакета фамилия! 💡 Эти задания предполагают, что вы реализовали UML диаграмму ранее. Для выполнения обоих заданий вам помогут знания из лекции 2.6 Работа с файлами. Не забудьте загрузить свой проект на GitHub, и после каждого задания сохраняйте изменения. Задание 1. (15 ОО) Создайте в папке resources файл my_card.txt, в котором напишите построчно в следующем порядке все данные из вашей карты: 1. Стадия 2. Имя покемона 3. ХП 4. Тип покемона 5. Из какого покемона эволюционирует* 6. Способности атак в формате: цена / название / урон , если способностей две, то через запятую: цена / название / урон,цена / название / урон 7. Тип слабости (если есть) 8. Тип сопротивления (если есть) 9. Цена побега 10. Название сета** 11. Отметка легальности (буква E, G, и т.п) 12. Владелец карты в формате: фамилия / имя / отчество / группа Пример: my_card.txt 1 Basic 2 PikachuV 3 200 4 Lightning 5 - 6 1/Tail Whap/20,2L/Thunderbolt/100 7 Fighting 8 - 9 1 10 Fusion Strike 11 E 12 Иванов/Иван/Иванович/БСБО-01-23 Стоимость способности атаки и побега записывается первой буквой названия энергии, кроме Fighting, Fairy, Dragon, для их обозначения используются H, I, R соответственно. * для этого найдите данные карточки другого покемона из интернета и создайте дополнительный файл имя_покемона_прошлой_стадии.txt с данными соответствующей этой карте, кроме владельца карты, поместите путь к этому файлу в эту строчку. Если покемон в базовой стадии, то ставьте прочерк -. Поиск карт можно осуществлять через сайт https://www.tcgplayer.com ** ищется на этой странице (если несколько для одной эмблемы, то подставляйте любой): https://bulbapedia.bulbagarden.net/wiki/List_of_Pokémon_Trading_Card_Game_expansions Создайте класс CardImport, в котором опишите логику создания экземпляра карты из данных, описанных в файле, учитывая возможную зависимость от эволюционирования покемона. Создайте экземпляр класса CardImport в точке входа в PkmnApplication, передайте туда путь к файлу my_card.txt для загрузки данных. Выведите на экран полную информацию о покемоне. Задание будет считаться выполненным только, если будет реализована логика загрузки из файла. Создание экземпляра, описанное "хардкодом" в конструкторе Card не будет считаться. Задание 2. (15 ОО) Создайте класс CardExport в котором опишите логику сериализации в байтовый формат объекта Card. Формат выходного файла должен быть с расширением .crd, название файла будет именем покемона. Не забудьте, что классы Card, AttackSkill и Student должны реализовывать стандартный интерфейс Serializable (уже присутствует в JDK). В PkmnApplication создайте и используйте экземпляр CardExport для сохранения созданной карты из предыдущего задания на диск. В классе CardImport создайте новый метод, который будет десериализовывать файл из байтового формата в класс Card. Попросите владельца любой другой карты передать свой .crd файл и загрузите его в программу и выведите всю информацию о карте. Важный момент. Из-за особенностей сериализации и десериализации объектных типов данных в случае, если происходит ошибка десериализации из-за "несовпадения полей класса", необходимо в проектах обоих студентов прописать в каждом классе (кроме enum) константу: public static final long serialVersionUID = 1L; Затем снова сериализовать файл на диск и повторить попытку передачи. Задание будет считаться выполненным, только, если вся информация будет загружаться из файла и все данные карты будут корректно отображаться, в том числе атакующие способности и владелец карты.
list Все задачи

Нужно решить свою задачу?

Загрузите фото или введите текст — AI решит с пошаговым объяснением!

Решите свою задачу прямо сейчас

Введите текст задачи или загрузите фото — получите ответ мгновенно

Выберите режим AI:
🚀 Pro v3
20 руб. • 99.9%
⚡ Lite v3
5 руб. • 95%
Ваш баланс: 10 руб.
Пополнить
psychology
Задайте любой вопрос
Поддерживаются текст, фото и голосовой ввод
🎉
Бонус получен!
+20 ₽
Добавлено на ваш баланс