-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAccessFieldsAndModifiersTask.txt
More file actions
46 lines (38 loc) · 3.48 KB
/
AccessFieldsAndModifiersTask.txt
File metadata and controls
46 lines (38 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Задача: Разработка модуля "Броня Героя" для RPG-игры
Контекст:
Ты — джуниор-разработчик в студии. Тебе поступила задача от геймдизайнера:
реализовать базовую систему брони (класс Armor).
Игроки смогут находить броню и надевать её.
Но есть важное требование: предметы не должны иметь "сломанных" значений
(например, отрицательная прочность или защита).
Нужно сделать так, чтобы класс сам контролировал свои данные.
Техническое задание (ТЗ):
1. Создай класс Armor (Броня).
У него должны быть следующие приватные поля (private):
- string _name (название брони)
- int _durability (текущая прочность)
- int _maxDurability (макс. прочность)
- int _defense (бонус к защите)
2. Реализуй публичные свойства (public) или методы доступа (геттеры/сеттеры):
- Для чтения названия и защиты (только get).
- Для прочности нужно сделать особый метод TakeDamage(int amount).
Он будет уменьшать прочность, но не даст ей упасть ниже 0.
3. Конструктор:
- Создай конструктор, который принимает название, защиту и макс. прочность.
В нем должна выполняться проверка: если переданная защита меньше 0, то установить ее в 1
(потому что даже сломанная кожаная куртка хоть немного, но защищает).
Если прочность меньше 1, установить её в 1.
4. Метод Repair():
- Создай метод, который восстанавливает _durability до _maxDurability.
При этом, если предмет совсем сломан (прочность 0), починить его можно, но со штрафом:
максимальная прочность уменьшается на 10% (но не менее 1).
5. Инкапсуляция:
- Сделай так, чтобы внешний код не мог напрямую написать myArmor._defense = -500.
Доступ к полям должен быть только через методы и свойства.
Дополнительное задание "Механик":
В методе Main (или в отдельном классе Game) напиши код, который:
1. Создаст массив (список) из 3-х предметов брони (Шлем, Нагрудник, Поножи) с разными характеристиками.
2. В цикле for или foreach симулирует бой:
каждый предмет получает случайное повреждение (от 1 до 50) от атак монстров.
3. Выведи на консоль состояние брони до и после боя.
4. Попробуй "починить" один из предметов.