moevm / oop

Object-oriented programming course
29 stars 225 forks source link

[8383]Maximova_Anastasia_Lab1 #638

Closed AlexxxMaxxx closed 4 years ago

Ksenox commented 4 years ago

Не вижу UML диаграммы

AlexxxMaxxx commented 4 years ago

Файлы, относящиеся к данной работы: UML.png, report.pdf, object.h, abstractFactory.h, main.cpp, unit.h, unit.cpp, gameField.h, gameField.cpp (dialog.h, dialog.cpp, firstGamer.h, firstGamer.cpp - для взаимодействия с игроком)

Из дополнительных требований:

Ksenox commented 4 years ago

1) Зачем создавать отдельные классы для каждого игрока? 2) Желательно сделать, чтобы классы относящиеся к логике (например поле) ничего не писали к консоль. 3) Раз сделаны конструкторы, то необходимо переопределить соответствующие операторы присваивания

Ksenox commented 4 years ago

4) Правильно ли понимаю, что не сделаны отдельные классы для параметров юнитов, а также итератор?

AlexxxMaxxx commented 4 years ago

2,3 - поняла, 4 - на данный момент нет, но думаю будет сделано в следующих лабораторных 1 - Изначально, я планировала унаследовать второй класс игрока от первого, но добавить в него какие-нибудь специфические методы, ну и такое разбиение показалось мне более удобным, для меня, но я подозреваю, что это может обернуться необоснованно лишним кодом, поэтому скорее всего это будет один класс, или два, но действительно разных, если такое будет возможным и логичным.

Ksenox commented 4 years ago

2,3 - поняла, 4 - на данный момент нет, но думаю будет сделано в следующих лабораторных 1 - Изначально, я планировала унаследовать второй класс игрока от первого, но добавить в него какие-нибудь специфические методы, ну и такое разбиение показалось мне более удобным, для меня, но я подозреваю, что это может обернуться необоснованно лишним кодом, поэтому скорее всего это будет один класс, или два, но действительно разных, если такое будет возможным и логичным.

1) Сделайте тогда класс абстрактного игрока. И наследуйте от него. Если Вам необходимо будет как-то специализировать еще одного игрока, то просто сделаете еще одно наследование от базового

По остальным замечаниям надо исправить, и тогда л/р будет принята

AlexxxMaxxx commented 4 years ago

Исправления (New version): Классы, относящиеся к логике, не содержат методов, печатающих в консоль. См. файлы (GameField.h GameField.cpp, Attribute.cpp Attribute.h, Unit.cpp Unit.h, AbstractFactory.h, Object.h) Для конструкторов перемещения и копирования были переопределены соответствующие операторы присваивания, см. файл GameField.cpp. Для игроков создается один класс Gamer, логическое разделение ходов (очередность), и вызов методов этого класса происходит в классе Control (см.файлы Gamer.h, Gamer.cpp, Control.h, Control.cpp) Были реализованы отдельные классы для параметров юнитов (Health, Damage, Armor), наследуемые от абстрактного класса Attribute (см. файлы Attribute.cpp Attribute.h) Итератор пока не реализован. *В файлах встречаются названия новых классов и методов ко второй лабораторной работе.

Ksenox commented 4 years ago

13 баллов