Эксперт по сдаче вступительных испытаний в ВУЗах
Семестровая работа
по курсу «Объектно-ориентированный анализ и программирование»
Текстовый квест
Задание: Разработать компьютерную игру на языке C++ согласно принципам объектно-ориентированного подхода. Игровой мир, правила игры разрабатываются самостоятельно.
Исходные данные:
Литература:
1. Г. Буч Объектно-ориентированный анализ и проектирование. 3-е изд. — М.: «Бином», 2011 г.
2. Дж. Рамбо, М. Блаха UML 2.0 Объектно-ориентированное моделирование и разработка. 2-е изд. — СПб.: Питер, 2007. — 544 с.
3. Б. Страуструп Язык программирования C++. (последние издания)
4. В.В. Подбельский. Язык С++ (последние издания)
5. Любая другая литература по языку C++
Примеры аналогичных игр:
Примеры текстовых квестов из игры «Космические рейнджеры» (см. ссылку в курсе). Для запуска примеров квестов используется QmPlayer из того же архива.
Основная функциональность игры
1. Ввод начальных данных о игроке (имя игрока и дополнительная информация, необходимая для игрового мира).
2. Вывод начальной информации о игровом мире и цели игры для игрока. Что нужно сделать для победы в игре и как избежать поражения.
3. Хранение состояния игрового мира, который описывается набором состояний взаимосвязанных сущностей игры.
4. На каждом шаге игры предложение пользователю набор возможных действий в игровом мире (набор доступных действий определяется динамически в зависимости от состояния игрового мира, положения игрока и т.д.).
5. После выбора игроком одного из предложенных действий – состояние игрового мира изменяется и игроку выдается обновленная информация о мире и новый набор действий для очередного шага.
6. Если после очередного шага игры выполнилось условие победы или поражения, то игрока информируют о результате игры и игра завершается.
Дополнительная функциональность игры
− Возможность сохранения результатов игры в файл и ведения статистики (таблицы лучших результатов).
− Загрузка данных об игровом мире из файлов (локации, текст диалогов, характеристики персонажей, предметов и т.д.)
− Генерация элементов игрового мира случайным образом, элементы случайности при реакции на действия игрока в процессе игры.
− Активный игровой мир – наличие конкурирующих игроков, управляемых компьютером, или отдельных персонажей, реагирующих на действия игрока и на текущую игровую ситуацию.
− Дополнительные возможности для игроков (предлагаются разработчиками игры)
Интерфейс пользователя на выбор:
• графический оконный
• текстовый (консольный)
Шаги разработки.
Действия разработчиков Результат этапа
1. Анализ и разработка концепции игры
− Придумать мир игры (предметную область): сценарий и правила игры.
− Описать игровые локации, персонажей и предметы, с которыми может взаимодействовать игрок.
Примечание. Сложность мира игры и правил согласуется с преподавателем. Игровая механика пошаговая.
− Составить словарь предметной области и составить описание функциональности приложения-игры и правил игры (в том числе обязательно описать условия победы и поражения).
Примечание. Игра может содержать дополнительные игровые элементы и функции (например, карту, по которой перемещается игрок, статистику игрока и т.д.). Документ, содержащий:
1. Описание мира игры с пояснениями.
2. Карта игрового мира (или примеры случайных карт с описанием логики их генерации)
3. Словарь предметной области (игровые термины).
4. Правила игры.
5. Функциональность игрового приложения (список функций)
2. Проектирование игрового приложения
− Продумать варианты взаимодействия игрока с персонажами и предметами.
− Описать объекты (классы) игры. Построить диаграмму классов, на которой отразить структурные отношения классов игры.
− Набросать прототип интерфейса пользователя и на примерах попробовать его в действии.
− Реализовать скелет классов, на основе которых будет программироваться игра. В скелет включить функции с заглушками вместо кода.
1. Описание вариантов взаимодействия с персонажами и предметами (желательно с поясняющими схемами, например, UML-диаграмма прецедентов)
2. UML-диаграмма классов и таблица с описанием ответственностей классов
3. Реализованные классы на C++ с заглушками
4. Реализованный интерфейс пользователя на C++ с тестовыми примерами отображения информации
3. Реализация в коде и внутреннее тестирование
− Запрограммировать игру, заполнив скелет работающим кодом.
− Поиграть, исправить ошибки, внести коррективы в логику самой игры.
1. Реализованная игра на C++
2. Продемонстрировать работающее игровое приложение
4. Внешнее тестирование
− Составить руководство для игрока с описанием прохождения игры (со скриншотами).
− Передать игру на тестирование другой бригаде (бригадам – не менее одной). Исправить ошибки и замечания, найденные тестировщиками. Ошибки документируются.
1. Составленное руководство для игроков
2. Список найденных багов от внешних тестировщиков
3. Исправленный код программы
Критерии качественной игры
1. Концепция игры
a. в игру интересно играть!
b. достаточная сложность и разнообразие игрового мира
c. в приложении реализована вся изначально запланированная в концепции игры функциональность
2. Качество проектирования приложения
a. Спроектированы UML-диаграммы, моделирующие поведение системы
b. Спроектирована UML-диаграмма классов, отражающая ключевые классы решения, их основные поля и методы, взаимодействие между классами
c. При проектировании грамотно выполнена объектная декомпозиция — каждый класс решает свою задачу, разделены ответственности: хранение данных, логика, ввод/вывод (интерфейс пользователя)
d. При проектировании грамотно использованы принципы ООП: инкапсуляция, агрегация/композиция, наследование, полиморфизм
e. Программная реализация выполнена согласно спроектированным решениям
3. Качество программной реализации
a. Методы классов компактны (пара экранов кода — максимум 20-30 строк)
b. Выполнена модульная декомпозиция — решение разделено на модули и заголовочные файлы, сильно взаимодействующие классы размещены в одном модуле
c. Соблюдение соглашений по именованию и форматированию кода: именование модулей, классов, полей, методов, параметров и локальных переменных — названия четко и однозначно отражают суть элемента
d. Отсутствуют элементы процедурного программирования — глобальные функции и переменные, злоупотребление статическими полями и методами классов, большие и сложные условные ветвления в методах
e. Реализована инкапсуляция — внутренние особенности реализации классов скрыты, обозначен понятный интерфейс для взаимодействия с классом
f. Отсутствует дублирование кода методов, структуры полей класса за счет применения принципов агрегации/композиции и наследования
g. Понимание синтаксиса и возможностей языка С++, грамотное использование библиотек
h. Работа с динамической памятью без утечек, грамотное использование конструкторов и деструкторов для создания и уничтожения объектов
i. Обоснованное применение динамических структур данных — контейнеров (графы, деревья, списки, вектора, стеки, карты — map)
4. Гибкость программной реализации
a. Реализована возможность гибкого расширения функциональности игрового приложения
b. Добавление новых действий, локаций, персонажей, предметов и других элементов игрового мира минимально затрагивает существующий программный код игры
5. Работоспособность приложения и качество тестирования
a. не происходит сбоев и падений системы во время работы
b. при некорректных входных данных программная система информирует об этом пользователя
c. Решение протестировано сторонними тестировщиками
Ссылка на первоисточник:
https://barnaul.spbume.ru
Оставить комментарий
Inna Petrova 18 минут назад
Нужно пройти преддипломную практику у нескольких предметов написать введение и отчет по практике так де сдать 4 экзамена после практики
Иван, помощь с обучением 25 минут назад
Inna Petrova, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Коля 2 часа назад
Здравствуйте, сколько будет стоить данная работа и как заказать?
Иван, помощь с обучением 2 часа назад
Николай, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инкогнито 5 часов назад
Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения. Сам диплом готов, пришлю его Вам по запросу!
Иван, помощь с обучением 6 часов назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Василий 12 часов назад
Здравствуйте. ищу экзаменационные билеты с ответами для прохождения вступительного теста по теме Общая социальная психология на магистратуру в Московский институт психоанализа.
Иван, помощь с обучением 12 часов назад
Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Анна Михайловна 1 день назад
Нужно закрыть предмет «Микроэкономика» за сколько времени и за какую цену сделаете?
Иван, помощь с обучением 1 день назад
Анна Михайловна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Сергей 1 день назад
Здравствуйте. Нужен отчёт о прохождении практики, специальность Государственное и муниципальное управление. Планирую пройти практику в школе там, где работаю.
Иван, помощь с обучением 1 день назад
Сергей, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инна 1 день назад
Добрый день! Учусь на 2 курсе по специальности земельно-имущественные отношения. Нужен отчет по учебной практике. Подскажите, пожалуйста, стоимость и сроки выполнения?
Иван, помощь с обучением 1 день назад
Инна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Студент 2 дня назад
Здравствуйте, у меня сегодня начинается сессия, нужно будет ответить на вопросы по русскому и математике за определенное время онлайн. Сможете помочь? И сколько это будет стоить? Колледж КЭСИ, первый курс.
Иван, помощь с обучением 2 дня назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Ольга 2 дня назад
Требуется сделать практические задания по математике 40.02.01 Право и организация социального обеспечения семестр 2
Иван, помощь с обучением 2 дня назад
Ольга, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Вика 3 дня назад
сдача сессии по следующим предметам: Этика деловых отношений - Калашников В.Г. Управление соц. развитием организации- Пересада А. В. Документационное обеспечение управления - Рафикова В.М. Управление производительностью труда- Фаизова Э. Ф. Кадровый аудит- Рафикова В. М. Персональный брендинг - Фаизова Э. Ф. Эргономика труда- Калашников В. Г.
Иван, помощь с обучением 3 дня назад
Вика, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Игорь Валерьевич 3 дня назад
здравствуйте. помогите пройти итоговый тест по теме Обновление содержания образования: изменения организации и осуществления образовательной деятельности в соответствии с ФГОС НОО
Иван, помощь с обучением 3 дня назад
Игорь Валерьевич, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Вадим 4 дня назад
Пройти 7 тестов в личном кабинете. Сооружения и эксплуатация газонефтипровод и хранилищ
Иван, помощь с обучением 4 дня назад
Вадим, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Кирилл 4 дня назад
Здравствуйте! Нашел у вас на сайте задачу, какая мне необходима, можно узнать стоимость?
Иван, помощь с обучением 4 дня назад
Кирилл, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Oleg 4 дня назад
Требуется пройти задания первый семестр Специальность: 10.02.01 Организация и технология защиты информации. Химия сдана, история тоже. Сколько это будет стоить в комплексе и попредметно и сколько на это понадобится времени?
Иван, помощь с обучением 4 дня назад
Oleg, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Валерия 5 дней назад
ЗДРАВСТВУЙТЕ. СКАЖИТЕ МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ С ВЫПОЛНЕНИЕМ практики и ВКР по банку ВТБ. ответьте пожалуйста если можно побыстрее , а то просто уже вся на нервяке из-за этой учебы. и сколько это будет стоить?
Иван, помощь с обучением 5 дней назад
Валерия, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инкогнито 5 дней назад
Здравствуйте. Нужны ответы на вопросы для экзамена. Направление - Пожарная безопасность.
Иван, помощь с обучением 5 дней назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Иван неделю назад
Защита дипломной дистанционно, "Синергия", Направленность (профиль) Информационные системы и технологии, Бакалавр, тема: «Автоматизация приема и анализа заявок технической поддержки
Иван, помощь с обучением неделю назад
Иван, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Дарья неделю назад
Необходимо написать дипломную работу на тему: «Разработка проекта внедрения CRM-системы. + презентацию (слайды) для предзащиты ВКР. Презентация должна быть в формате PDF или формате файлов PowerPoint! Институт ТГУ Росдистант. Предыдущий исполнитель написал ВКР, но работа не прошла по антиплагиату. Предыдущий исполнитель пропал и не отвечает. Есть его работа, которую нужно исправить, либо переписать с нуля.
Иван, помощь с обучением неделю назад
Дарья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru