-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArrayExpansionTask.txt
More file actions
75 lines (62 loc) · 4.4 KB
/
ArrayExpansionTask.txt
File metadata and controls
75 lines (62 loc) · 4.4 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Техническое задание: "Динамический инвентарь героя"
Контекст:
Вы — джунис-программист в студии, разрабатывающей roguelike-игру.
Вам поручили реализовать систему инвентаря, который должен динамически расширяться
по мере нахождения предметов.
Требования:
Часть 1: Базовая структура
1. Создайте класс Hero с полями:
- Name (имя героя)
- Inventory (массив строк — названия предметов)
- InventorySize (текущий размер инвентаря)
2. Реализуйте конструктор, который принимает имя героя и начальный размер инвентаря (по умолчанию 5 слотов)
Часть 2: Ключевая механика — расширение инвентаря
3. Создайте метод ExpandInventory(int additionalSlots), который:
- Создает новый массив с размером текущий размер + additionalSlots
- Копирует все существующие предметы в новый массив
- Заменяет старый массив на новый
- Выводит сообщение в консоль: "Инвентарь расширен! Новый размер: X"
4. Создайте метод AddItem(string itemName), который:
- Проверяет, есть ли свободные слоты
- Если слотов нет — автоматически расширяет инвентарь на 3 слота (через вызов ExpandInventory)
- Добавляет предмет в первый свободный слот
- Выводит сообщение: "Добавлен предмет: [itemName]"
Часть 3: Дополнительные функции
5. Реализуйте методы:
- RemoveItem(int index) — удаляет предмет по индексу, сдвигая все последующие предметы
- FindItem(string itemName) — возвращает индекс первого найденного предмета
- DisplayInventory() — красиво выводит весь инвентарь в консоль
Часть 4: Игровая логика
6. Создайте программу, которая:
- Использует цикл while для игрового процесса
- Случайным образом (Random) генерирует события:
- Найден предмет (вызывается AddItem)
- Найден сундук с расширением инвентаря (вызывается ExpandInventory)
- Потеря предмета (вызывается RemoveItem)
- Использует switch для обработки разных событий
- Предоставляет игроку выбор действий через консоль
Пример работы программы:
=== ИНВЕНТАРЬ ГЕРОЯ "АРТУР" ===
[1] Меч
[2] Зелье здоровья
[3] <Пусто>
[4] <Пусто>
[5] <Пусто>
Событие: Вы нашли 'Кольцо маны'!
Добавлен предмет: Кольцо маны
=== ИНВЕНТАРЬ ГЕРОЯ "АРТУР" ===
[1] Меч
[2] Зелье здоровья
[3] Кольцо маны
[4] <Пусто>
[5] <Пусто>
Событие: Найден редкий артефакт 'Плащ невидимости'!
Инвентарь полон! Автоматическое расширение...
Инвентарь расширен! Новый размер: 8
Добавлен предмет: Плащ невидимости
Усложнение (опционально):
7. Реализуйте систему вещей:
- Создайте класс Item с полями: Name, Weight, Value
- Измените инвентарь на массив Item[]
- Добавьте максимальный вес, который может нести герой
- При расширении инвентаря увеличивайте максимальный вес