Создание диаграммы классов и прототипа кода на языке С++ в системе "Enterprise architect"
Ролевая система как набор правил в играх (настольных, компьютерных), отвечающий за способности персонажей и исход того или иного действия. Спецификации классов и их назначение, диаграммы классов. Прототип кода, сгенерированный в Enterprise architect.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 16.10.2017 |
Размер файла | 629,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство Образования и Науки РФ
Новосибирский Государственный Технический Университет
Кафедра ПМт
Расчётно-графическое задание повышенной сложности
по курсу «Объектно-ориентированное программирование»
а тему Создание диаграммы классов и прототипа кода на языке С++ в системе «Enterprise architect»
Факультет: ПМИ
Группа: ПМ-21
Студент: Червов В.А.
Преподаватель: Еланцева И.Л.
Новосибирск
2013
1.) Описание предметной области, словарь предметной области
Ролевая система - набор правил в ролевых играх (настольных, полигонных, компьютерных), отвечающий за способности персонажей и исход того или иного действия.
В настольных и компьютерных RPG играющий не действует самостоятельно, а отыгрывает роль вымышленного персонажа, управляя его действиями, поэтому персонаж может иметь способности и возможности, которыми не обладает отыгрывающий его. Его возможности определяются набором характеристик, которые игрок обычно выбирает сам при создании персонажа.
Характеристики персонажа определяют его наиболее основные параметры. Включим в их число здоровье, ману, урон, силу способностей, скорость атаки, скорость передвижения, броню, сопротивление магии и другие.
Рост персонажа обычно происходит с накоплением им так называемого опыта (англ. experience). Очки опыта можно получать за различные совершаемые в игре действия (обычно успешные). В некоторых системах опыт даётся за сюжетно важные решения и действия, в некоторых за любые успешные действия.
Также бонусы к характеристикам добавляют предметы (Items) и “Баффы” (усиления, Buffs). Не использующиеся на данный момент предметы хранятся в сумке (Bag), тогда как использующиеся, т.е. дающие бонусы в данный момент времени - в инвентаре.
Словарь: персонаж (Character), неигровой персонаж (NPC), персонаж игрока (Player Character), раса(Race), класс (Class), предмет (Item), усиление (Buff), опыт (Experience), уровень (Level), здоровее (Health), манна (Mana), урон (Attack), сила способностей (Spell Power), скорость атаки (Attack Speed), скорость передвижения (Move Speed), броня (Armor), сопротивление магии (Magic Resistance), длительность действия (…Duration).
2.) Спецификации разработанных классов и их назначение, диаграммы классов
class Character - обобщенное представление персонажей в игре
Атрибуты:
int Armor - количество брони
int Attack - урон за атаку
int AttackSpeed - скорость атаки
BuffList Buffs - контейнер, содержащий усиления
int CharLevel - уровень персонажа
int Class - индекс класса персонажа
float Cooldown[6] - информация о времени перезарядки способностей
int Health - количество здоровья
bool inCombat - находится ли персонаж в бою?
bool isDead - мертв ли персонаж?
int MagicResistance - количество магического сопротивления
int Mana - количество маны
float ManaReg - восстанавливаемая мана за единицу времени
int maxHealth - максимальное здоровье
int maxMana - максимальная мана
int MoveSpeed - скорость передвижения за единицу времени
char name[30] - имя персонажа
bool onSurface - находится ли персонаж на поверхности?
int Race - индекс расы персонажа
int SpellPower - количество силы способностей
Функции:
bool Ability1() - способность#1
bool Ability2() - способность#2
bool Ability3() - способность#3
bool Ability4() - способность#4
bool Ability5() - способность#5
bool Ability6() - способность#6
void AutoAttack() - совершить автоатаку по цели
bool checkDead() - проверить, мерт ли персонаж
int DealDamage(int SpScale, int AttackScale) - нанести урон цели
void Jump() - прыгнуть
void lowerCooldown() - снизить время перезарядки всех способностей
void Move(int dir) - идти вперед/назад/вправо/влево
void TakeDamage(int DmgCaused, int DmgType) - получить урон
class Addition - обобщенное представление бонусов к характеристикам
Атрибуты:
int BonusArmor - количество дополнительной брони
int BonusAS - количество дополнительной скорости атаки
int BonusAttack - количество дополнительного урона
int BonusHealth - количество дополнительного здоровья
int BonusMana - количество дополнительной маны
float BonusMReg - количество дополнительной регенерации маны
int BonusMRes - количество дополнительного маг. сопротивления
int BonusMS - количество дополнительной скорости передвижения
int BonusSP - количество дополнительной силы способностей
class Buff : public Addition - усиление
Атрибуты:
char BuffName[30] - название усиления
float Duration - изначальная продолжительность усиления
float EndsIn - оставшаяся продолжительность усиления
float multArmor - множитель брони
float multAS - множитель скорости атаки
float multAttack - множитель урона
float multHealth - множитель здоровья
float multMana - множитель маны
float multMReg - множитель регенерации маны
float multMRes - множитель магического сопротивления
float multMS - множитель скорости передвижения
float multSP - множитель силы способностей
Функции:
void lowerDuration() - снизить оставшуюся продолжительность усиления
class BuffList - множество действующих усилений (контейнер)
Атрибуты:
Buff *m_Buff - список с действующими усилениями
Функции:
void addBuff(Buff aBuff) - добавить новое усиление в контейнер
void lowerDuration() - снизить оставшуюся продолжительность усилений
void removeBuff(int BuffNum) - убрать усиление из контейнера
class Item : public Addition - предмет
Атрибуты:
char ItemName[30] - название предмета
int LevelRequired - требуемый уровень для использования
int Slot - индекс соответствующего предмету слота в инвентаре
Функции:
bool checkLevel(int Level) - проверить, подходит ли предмет персонажу по уровню
class Inventory : public Addition - инвентарь, множество экипированных предметов (контейнер)
Атрибуты:
Item *m_Item - список с экипированными предметами
Функции:
bool checkLevel(int Level, Item eItem) - проверить, подходит ли добавляемый предмет персонажу по уровню
void EquipItem(Item eItem) - экипировать предмет
Item removeItem(int Slot) - снять предмет
class Bag - сумка, множество неэкипированных предметов (контейнер)
Атрибуты:
Item *m_Item - список с неэкипированными предметами
int SlotsLeft - количество незанятых позиций в списке
Функции:
void addItem(Item cItem) - положить предмет в сумку
Item takeFrom(int SlotNum) - взять предмет из сумки
class NPC : public Character - неигровой персонаж
Атрибуты:
Item DroppedItem - случайно выбранный предмет, падающий после смерти
int ExpGranted - количества опыта за убийство персонажа
bool isEnemy - враг ли персонаж?
PlayerCharacter* Target -персонаж игрока как цель
Функции:
void DropItem() - случайно выбирает предмет ,который должен выпасть после смерти
void Interact() - взаимодействие с игроком (например, диалог)
void newTarget(PlayerCharacter tPC) - выбрать персонажа игрока как цель
void Redefine() - переопределение характеристик при их изменении
void Respond() - выбирает оптимальное действие в бою
class PlayerCharacter : public Character - персонаж игрока
Атрибуты:
Bag Bag; - сумка с предметами персонажа
int CharExp - текущее количество опыта
Inventory Inventory - инвентарь персонажа
NPC* Target - текущая цель игрока
код enterprise architect
Функции:
void addExp(int exp) - добавляет опыт персонажу игрока
bool checkExp() - проверить, достаточно ли у игрока опыта для перехода на новый уровень
Item LootItem(NPC DeadNPC) - подобрать предмет с мертвого вражеского персонажа
void newTarget(NPC tNPC) - сменить цель
void NextLevel() - повысить уровень игрока
void Redefine() - переопределение характеристик при их изменении
void tryInteract() - попытаться взаимодействовать с неигровым персонажем
3.) Прототип кода, сгенерированный в Enterprise Architect
Addition.h
class Addition
{
public:
Addition();
virtual ~Addition();
protected:
int BonusArmor;
int BonusAS;
int BonusAttack;
int BonusHealth;
int BonusMana;
float BonusMReg;
int BonusMRes;
int BonusMS;
int BonusSP;
};
Buff.h
#include "Addition.h"
class Buff : public Addition
{
public:
Buff();
virtual ~Buff();
void lowerDuration();
protected:
char BuffName[30];
float Duration;
float EndsIn;
float multArmor;
float multAS;
float multAttack;
float multHealth;
float multMana;
float multMReg;
float multMRes;
float multMS;
float multSP;
};
BuffList.h
#include "Buff.h"
class BuffList
{
public:
BuffList();
virtual ~BuffList();
Buff *m_Buff;
void addBuff(Buff aBuff);
void lowerDuration();
void removeBuff(int BuffNum);
};
Character.h
class Character
{
public:
Character();
virtual ~Character();
bool Ability1();
bool Ability2();
bool Ability3();
bool Ability4();
bool Ability5();
bool Ability6();
void AutoAttack();
bool checkDead();
int DealDamage(int SpScale, int AttackScale);
void Jump();
void lowerCooldown();
void Move(int dir);
void TakeDamage(int DmgCaused, int DmgType);
protected:
int Armor;
int Attack;
int AttackSpeed;
BuffList Buffs;
int CharLevel;
int Class;
float Cooldown[6];
int Health;
bool inCombat;
bool isDead;
int MagicResistance;
int Mana;
float ManaReg;
int maxHealth;
int maxMana;
int MoveSpeed;
char name[30];
bool onSurface;
int Race;
int SpellPower;
};
Item.h
#include "Addition.h"
class Item : public Addition
{
public:
Item();
virtual ~Item();
bool checkLevel(int Level);
protected:
char ItemName[30];
int LevelRequired;
int Slot;
};
Inventory.h
#include "Addition.h"
#include "Item.h"
class Inventory : public Addition
{
public:
Inventory();
virtual ~Inventory();
Item *m_Item;
bool checkLevel(int Level, Item eItem);
void EquipItem(Item eItem);
Item removeItem(int Slot);
};
Bag.h
#include "Item.h"
class Bag
{
public:
Bag();
virtual ~Bag();
Item *m_Item;
void addItem(Item cItem);
Item takeFrom(int SlotNum);
protected:
int SlotsLeft;
};
NPC.h
#include "Item.h"
#include "PlayerCharacter.h"
#include "Character.h"
class NPC : public Character
{
public:
NPC();
virtual ~NPC();
PlayerCharacter *m_PlayerCharacter;
void DropItem();
void Interact();
void newTarget(PlayerCharacter tPC);
void Redefine();
void Respond();
protected:
Item DroppedItem;
int ExpGranted;
bool isEnemy;
PlayerCharacter* Target;
};
PlayerCharacter.h
#include "Bag.h"
#include "Inventory.h"
#include "Item.h"
#include "NPC.h"
#include "Character.h"
class PlayerCharacter : public Character
{
public:
PlayerCharacter();
virtual ~PlayerCharacter();
void addExp(int exp);
bool checkExp();
Item LootItem(NPC DeadNPC);
void newTarget(NPC tNPC);
void NextLevel();
void Redefine();
void tryInteract();
protected:
Bag Bag;
int CharExp;
Inventory Inventory;
NPC* Target;
};
Размещено на Allbest.ru
...Подобные документы
Общая характеристика склада как объекта хозяйственной деятельности. Создание диаграммы прецедентов и последовательности. Построение корпоративной диаграммы сотрудничества. Предназначение диаграммы классов и компонентов. Генерация программного кода C++.
курсовая работа [222,0 K], добавлен 23.06.2011Краткая характеристика предметной области. Создание диаграммы прецедентов, последовательности, сотрудничества, классов, размещения, компонентов. Добавление деталей к описаниям операций и определение атрибутов КЛАССОВ. Генерация программного кода C++.
курсовая работа [185,0 K], добавлен 29.06.2011Пошаговая методика разработки тестовой информационной системы (ИС) для проверки знаний по предмету ООП. Создание приложения для просмотра изображений, uml-диаграммы "Прецедентов" и uml-диаграммы "Классов", кода программы на языке программирования C#.
курсовая работа [645,2 K], добавлен 21.12.2013- Анализ, разработка и реализация базы данных встраиваемого модуля информационной системы IP-телефонии
Анализ предметной области. Проектирование диаграммы "сущность-связь" в Enterprise Architect. Общие сведения о базовых запросах. Создание базы данных в MySQL. Выделение сущностей, атрибутов, ключей, связей. Применение табличных и скалярных функций.
курсовая работа [1,8 M], добавлен 28.01.2016 Система обработки заказов. Создание диаграммы вариантов использования. Принципы и этапы формирования диаграммы последовательности действий и кооперативной диаграммы. Параметры и типы операций атрибутов классов, направления реализации связей между ними.
курсовая работа [735,9 K], добавлен 22.12.2013Изучение устройства и механизма процессов в компиляторах и интерпретаторах. Понятие трансляции как процедуры перевода программного кода с языка Паскаль на язык С++. Описание интерфейса программы и автоматизация процесса построения диаграммы классов.
курсовая работа [536,2 K], добавлен 03.07.2011Разработка модели информационной подсистемы для учета заказов клиентов автосервиса с применением языка UML. Создание диаграммы прецедентов, последовательности, сотрудничества и классов, используя методы Rational Rose 2000. Генерация программного кода C++.
курсовая работа [1013,2 K], добавлен 22.06.2011Построение модели прецедентов, модели пригодности для прецедента. Описание атрибутов и операций классов системы. Проектирование с применением методологии ICONIX. Построение диаграммы пригодности, диаграммы последовательностей и диаграмма классов.
курсовая работа [949,5 K], добавлен 25.05.2015Краткая характеристика предметной области. Актуальность разработки объектно-ориентированной модели информационной системы для учебной библиотеки. Создание диаграммы вариантов использования, последовательности, кооперативной диаграммы, диаграммы классов.
курсовая работа [381,8 K], добавлен 01.06.2009Типы документации на программное обеспечение. Особенности создания документации в EA. Изучение метода генерации документации в формате RTF. Шаблоны как инструмент для настройки пользовательских требований и стилизации документации программного продукта.
реферат [239,9 K], добавлен 31.05.2013Анализ информационной системы "Бурятия.INFO". Построение функциональной модели "Как надо", диаграммы прецедентов, диаграммы последовательности действий, диаграммы классов. Разработка программного приложения в интегрированной среде Intellij IDEA.
дипломная работа [1,3 M], добавлен 13.04.2014Анализ предметной области. Перечень хранимой информации: таблицы, поля, типы. Выделение сущностей, атрибутов, ключей, связей. Начальное заполнение данными БД. Создание и запуск базовых запросов. Проектирование базы данных в среде Enterprise Architect.
курсовая работа [1,6 M], добавлен 16.02.2016Обзор технологии OpenStack, область ее применения. Реализация библиотеки классов. Реализация базовых классов и интерфейсов архитектуры. Создание виртуального сервера. Интеграция разработанной библиотеки классов и архитектура проектного решения.
дипломная работа [1,0 M], добавлен 09.08.2016Ознакомление с программой проведения сборки компьютера из деталей, имеющихся в базе данных. Рассмотрение правил создания иерархии классов. Описание основных методов и пользовательского интерфейса. Изучение системных требований и текстов основных классов.
курсовая работа [710,2 K], добавлен 26.07.2014Процесс проектирования программы, состоящий из следующих шагов: описание прецедентов, построение диаграммы прецедентов, диаграммы взаимодействий, создание модели программных классов. Тестирование программы входными тестовыми вариантами, ее листинг.
курсовая работа [1,9 M], добавлен 25.10.2012Унифицированный язык моделирования. Методы объектно-ориентированного анализа и проектирования. Создание диаграммы последовательности и диаграммы сотрудничества. Главная диаграмма классов. Добавление связей между классами. Зависимость между пакетами.
курсовая работа [2,7 M], добавлен 23.06.2011Классы и свойства объектно-ориентированного пространства. Методика создания новых классов в delphi: выбор родительского класса, изменение существующих компонентов, создание подклассов для элементов управления windows. Создание новой ветви классов.
контрольная работа [13,0 K], добавлен 07.07.2012Изучение объектно-ориентированного языка программирования Java, его функциональные возможности. Создание программного кода. Описание классов и методов, использованных в программе. Руководство пользователя, запуск сервера и клиентского приложения.
курсовая работа [1,8 M], добавлен 16.09.2015Иерархия и типы классов в программе, особенности обеспечения наследования. Наследование по принципу подчиненности. Включение в другие классы или делегирование. Понятие изолированных классов. Конструкторы и деструкторы. Иерархия классов NET Framework.
презентация [91,8 K], добавлен 09.12.2013Создание диаграмм вариантов использования, логического представления, классов, состояний и деятельности, компонентов, развертывания для автоматизированной информационной системы в CASE-средстве Rational Rose. Генерация кода программы на языке ANSI C++.
курсовая работа [1,5 M], добавлен 23.10.2014