Trace:
Differences
This shows you the differences between two versions of the page.
|
practice:tasks:army [2020/04/29 09:11] superuser created |
practice:tasks:army [2020/04/29 09:14] (current) superuser |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | <code> | ||
| Войска. | Войска. | ||
| Line 5: | Line 4: | ||
| Базовые типы юнитов: | Базовые типы юнитов: | ||
| + | |||
| - Unit: Абстрактный (НЕОБЯЗАТЕЛЬНО) воин специализирующийся на нанесении физического урона | - Unit: Абстрактный (НЕОБЯЗАТЕЛЬНО) воин специализирующийся на нанесении физического урона | ||
| + | |||
| - SpellCaster: Абстрактный (НЕОБЯЗАТЕЛЬНО) воин специализирующийся на нанесении магического урона | - SpellCaster: Абстрактный (НЕОБЯЗАТЕЛЬНО) воин специализирующийся на нанесении магического урона | ||
| Line 11: | Line 12: | ||
| Юниты, наносящие физический урон: | Юниты, наносящие физический урон: | ||
| - | - Soldier [Солдат] : юнит без всяких специальных возможностей | + | * Soldier [Солдат] : юнит без всяких специальных возможностей |
| - | - Rogue [Разбойник] : разбойника невозможно контратаковать | + | * Rogue [Разбойник] : разбойника невозможно контратаковать |
| - | - Berserker [Берсерк] : на берсеркера не действует магия | + | * Berserker [Берсерк] : на берсеркера не действует магия |
| - | - Vampire [Вампир] : при атаке / контратаке потребляет часть жизненных сил противника | + | * Vampire [Вампир] : при атаке / контратаке потребляет часть жизненных сил противника |
| - | - Werewolf [Оборотень] : умеет превращаться в волка (в состоянии волка имеет более высокий показатель жизненных сил и атаки, но получает больший урон от магии) | + | * Werewolf [Оборотень] : умеет превращаться в волка (в состоянии волка имеет более высокий показатель жизненных сил и атаки, но получает больший урон от магии) |
| Юниты, способные к магии: | Юниты, способные к магии: | ||
| - | - Wizard [Волшебник] : атакует боевыми заклинаниями (лечебные заклинания имеют только половину силы) | + | * Wizard [Волшебник] : атакует боевыми заклинаниями (лечебные заклинания имеют только половину силы) |
| - | - Healer [Целитель] : владеет целебными заклинаниями (боевые заклинания имеют только половину силы) | + | * Healer [Целитель] : владеет целебными заклинаниями (боевые заклинания имеют только половину силы) |
| - | - Priest [Священник] : владеет целебными заклинаниями (боевые заклинания имеют только половину силы), наносит x2 урон нежити (Vampire, Necromancer) | + | * Priest [Священник] : владеет целебными заклинаниями (боевые заклинания имеют только половину силы), наносит x2 урон нежити (Vampire, Necromancer) |
| - | - Warlock [Чернокнижник] : призывает демонов (класс Demon немного расширяет класс Soldier) | + | * Warlock [Чернокнижник] : призывает демонов (класс Demon немного расширяет класс Soldier) |
| - | - Necromancer [Некромант] : следит за всеми кого атаковал, в случае смерти атакованого юнита, получает часть его жизненных сил | + | * Necromancer [Некромант] : следит за всеми кого атаковал, в случае смерти атакованого юнита, получает часть его жизненных сил |
| Интерфейсы: | Интерфейсы: | ||
| - | - Observer [наблюдатель] : пригодится для Necromancer | + | * Observer [наблюдатель] : пригодится для Necromancer |
| - | - Observable [наблюдаемое] : пригодится для всех остальных | + | * Observable [наблюдаемое] : пригодится для всех остальных |
| Напрячь мозг и: | Напрячь мозг и: | ||
| - | - Вынести механику атаки в виде отдельных классов | + | * Вынести механику атаки в виде отдельных классов |
| - | - Вынести заклинания в виде отдельных классов | + | * Вынести заклинания в виде отдельных классов |
| - | - Вынести состояния юнитов в виде отдельных классов | + | * Вынести состояния юнитов в виде отдельных классов |
| - | - Придумать внятную систему разделения боевых магов и целителей | + | * Придумать внятную систему разделения боевых магов и целителей |
| - | - Придумать внятную систему маркировки нежити | + | * Придумать внятную систему маркировки нежити |
| - | - Разделить урон на физический и магический | + | * Разделить урон на физический и магический |
| - | - Реализовать волшебникам книгу заклинаний (std::map и enum вам в этом помогут) | + | * Реализовать волшебникам книгу заклинаний (std::map и enum вам в этом помогут) |
| - | - Структурировать исходный код | + | * Структурировать исходный код |
| Дополнительные возможности: | Дополнительные возможности: | ||
| - | - Вампир может сделать вампиром другого юнита (исключение Werewolf) | + | * Вампир может сделать вампиром другого юнита (исключение Werewolf) |
| - | - Оборотень может сделать оборотнем другого юнита (исключение Vampire) | + | * Оборотень может сделать оборотнем другого юнита (исключение Vampire) |
| Важно: | Важно: | ||
| - | - Не забывайте, что в C++ есть наследование | + | * Не забывайте, что в C++ есть наследование |
| - | - Не забывайте, что в С++ есть множественное наследование | + | * Не забывайте, что в С++ есть множественное наследование |
| - | - Не забывайте, что в С++ есть перегрузка функций | + | * Не забывайте, что в С++ есть перегрузка функций |
| P.S.: Господа, данная задача на творчество. Я не ставлю вам никаких ограничений. Не следует задавать вопросы типа "Какой урон юнит наносит при контратаке?" или "Сколько очков здоровья должен получать Некромант?". Эта задача на проработку ООП. Чем сложнее и интереснее вы придумаете, тем больше опыта заработаете. | P.S.: Господа, данная задача на творчество. Я не ставлю вам никаких ограничений. Не следует задавать вопросы типа "Какой урон юнит наносит при контратаке?" или "Сколько очков здоровья должен получать Некромант?". Эта задача на проработку ООП. Чем сложнее и интереснее вы придумаете, тем больше опыта заработаете. | ||
| Line 57: | Line 58: | ||
| Нововведения: | Нововведения: | ||
| - | - У каждого юнита есть радиус атаки и дальность ходьбы. | + | * У каждого юнита есть радиус атаки и дальность ходьбы. |
| - | - У каждого заклинания есть радиус действия. | + | * У каждого заклинания есть радиус действия. |
| - | - Mount [Ездовые животные] - обладатель ездового животного может передвигаться на увеличенное количество клеток. | + | * Mount [Ездовые животные] - обладатель ездового животного может передвигаться на увеличенное количество клеток. |
| - | - Archer [Лучник] - умеет наносить урон на расстоянии. | + | * Archer [Лучник] - умеет наносить урон на расстоянии. |
| - | - Солдата можно сделать лучником. | + | * Солдата можно сделать лучником. |
| Часть 3. Пишу так, чисто поржать. Все равно никто не сделает. | Часть 3. Пишу так, чисто поржать. Все равно никто не сделает. | ||
| Визуализация: | Визуализация: | ||
| - | - Нарисовать доску в консоли. | + | * Нарисовать доску в консоли. |
| - | - Если в клетке находится юнит - визуально это обозначить. | + | * Если в клетке находится юнит - визуально это обозначить. |
| - | </code> | + | |
