-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClassesAndObjectsTask.txt
More file actions
59 lines (50 loc) · 4.65 KB
/
ClassesAndObjectsTask.txt
File metadata and controls
59 lines (50 loc) · 4.65 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
47
48
49
50
51
52
53
54
55
56
57
58
59
Система прокачки оружия
Это частая механика в RPG и шутерах, где игрок находит на уровнях сундуки и улучшает свое оружие.
Легенда
Мы делаем прототип RPG-игры.
У игрока есть персонаж, который носит с собой Рюкзак (инвентарь).
В рюкзаке может лежать разное оружие. Игрок находит сундуки.
В сундуке лежит случайное оружие.
Если в рюкзаке есть место — игрок просто забирает новое оружие.
Если рюкзак полон — игрок может заменить одно из своих оружий на новое или выкинуть новое.
Твое задание
Нужно написать консольную программу на C#, которая симулирует этот процесс.
Что должно быть в программе:
1. Класс Weapon (Оружие):
- Свойства (или поля):
- Name (string) — название (например, "Меч", "Лук", "Посох").
- Damage (int) — урон (от 5 до 30).
- Level (int) — уровень прокачки (начинается с 1).
- Метод Upgrade():
- Увеличивает Level на 1.
- Увеличивает Damage на случайную величину от 3 до 8 (используй Random).
- Выводит в консоль сообщение: "Ваш {Name} улучшен! Текущий уровень: {Level}, Урон: {Damage}".
2. Класс Backpack (Рюкзак):
- Свойства:
- Weapons (массив Weapon[]) — массив с оружием.
- Capacity (int) — максимальный размер рюкзака (задается при создании).
- Конструктор Backpack(int capacity), который создает пустой массив оружия заданного размера.
- Метод AddWeapon(Weapon newWeapon):
- Ищет первое свободное место в массиве (null).
- Если место найдено — кладет туда оружие и пишет: "Вы положили {Name} в рюкзак".
- Если мест нет — предлагает игроку выбрать, какое оружие выкинуть, чтобы освободить место для нового.
- Вывести на экран все оружия в рюкзаке с индексами (цикл).
- Игрок вводит индекс (число). На место выбранного оружия кладется новое. Старое оружие теряется.
- Подсказка: не забудь про защиту от дурака (проверка, что индекс в пределах массива).
3. Игровой цикл (Логика в Main):
- Создай рюкзак вместимостью, например, на 3 оружия.
- Положи в рюкзак для старта 2 простых меча
(создай экземпляры класса Weapon и добавь их через метод AddWeapon, чтобы проверить заполнение).
- Запусти бесконечный цикл (while (true)), который симулирует "находку сундука" по нажатию клавиши.
- Ждем нажатия клавиши (например, пробел).
- Генерируем случайное оружие:
- Массив названий: "Кинжал", "Топор", "Арбалет", "Огненный шар".
- Выбираем случайное название.
- Базовый урон (например, 10 + случайное число до 10).
- Уровень всегда 1 (только что нашли).
- Показываем игроку: "Вы нашли {Name} (Урон: {Damage})! Что делаем?"
- Предлагаем варианты:
1. Положить в рюкзак (вызывает backpack.AddWeapon(foundWeapon)).
2. Улучшить (вызывает метод Upgrade() у найденного оружия.
После улучшения снова спрашиваем, что с ним делать).
3. Выбросить (прощаемся с оружием, цикл начинается заново).