Домашни > Време е да помислите за проектите си! > Решения > Решението на Владимир Апостолов

Резултати
0 точки от тестове
4 точки от учител

4 точки общо

0 успешни теста
0 неуспешни теста
Код

 1"""
 2[Title/Звание]
 3
 4Zombie Waves: Последният оцелял
 5
 6
 7[Description/Обрисовка]
 8
 9Zombie Waves е 2D open world survival игра, в която играчът управлява герой, попаднал в свят, пълен със зомбита. Целта е героят да оцелява възможно най-дълго, като преминава през последователни вълни от врагове.
10
11С всяка следваща вълна броят на зомбитата се увеличава, а играта става по-трудна. Играчът разполага с пистолет с ограничен брой патрони и трябва внимателно да управлява ресурсите си. След убиване на зомби има шанс да паднат полезни предмети като патрони, щит или граната. На всеки пети wave играчът се изправя срещу boss fight, който е по-силен от обикновените зомбита и изисква по-добра стратегия.
12
13
14[Functionalities/Надарености]
15
16Играчът може да движи героя си свободно по open world карта.
17
18Играчът може да стреля по зомбита с пистолет, като всяко изстрелване намалява броя на наличните патрони.
19
20Героят започва играта с пистолет и 50 патрона.
21
22Зомбитата се появяват на вълни, като с всяка следваща вълна броят им се увеличава.
23
24Зомбитата се движат към героя и го атакуват, ако го достигнат.
25
26При убиване на зомби има 30% шанс да паднат допълнителни патрони.
27
28При убиване на зомби има 30% шанс да падне щит, който предпазва героя от следващите 3 атаки.
29
30При убиване на зомби има 30% шанс да падне граната, която играчът може да използва срещу група зомбита.
31
32Играчът може да събира падналите предмети, като премине през тях на картата.
33
34Играчът може да използва граната, която нанася щети на всички зомбита в определен радиус.
35
36След всяка пета вълна се появява boss enemy, който има повече живот, нанася повече щети и е по-труден за убиване.
37
38Играта следи живота на героя, броя патрони, наличните гранати, активния щит и текущия wave.
39
40Играта приключва, когато животът на героя достигне 0.
41
42След края на играта се показва резултат: достигнат wave, убити зомбита и победени boss-ове.
43
44
45[Milestones/Възлови точки]
46
47Основен game loop, който управлява състоянието на играта, обновяването на обектите и визуализирането им на екрана.
48
49Модул за управление на героя, включващ движение, стрелба, живот, патрони, щит и използване на гранати.
50
51Модул за зомбита, който създава врагове, управлява движението им към героя и обработва атаките им.
52
53Wave система, която създава нови вълни от зомбита и увеличава трудността след всяка премината вълна.
54
55Boss fight система, която създава по-силен враг след всеки пети wave.
56
57Система за предмети, която определя дали след убиване на зомби ще паднат патрони, щит или граната.
58
59Collision система за засичане на сблъсъци между куршуми и зомбита, герой и предмети, герой и врагове, както и гранати и зомбита.
60
61Графичен интерфейс, който показва живота на героя, броя патрони, наличните гранати, активния щит и текущия wave.
62
63Начален екран и екран за край на играта с показване на резултатите.
64
65Тестове за основната логика: шанс за падане на предмети, намаляване на патрони при стрелба, активиране и използване на щит, увеличаване на трудността при нов wave и появяване на boss след всеки пети wave.
66
67
68[Estimate in man-hours/Времеоценка в човекочасове]
69
70Около 45 часа.
71
72Разбивка:
73- Основен game loop и структура на проекта: 5 часа
74- Движение и управление на героя: 5 часа
75- Стрелба, патрони и collision логика: 6 часа
76- Зомбита и wave система: 7 часа
77- Drop система за предмети: 5 часа
78- Щитове, гранати и специални ефекти: 5 часа
79- Boss fight система: 5 часа
80- Интерфейс и екрани за начало/край: 4 часа
81- Тестове и доизчистване на кода: 3 часа
82
83
84[Usage of technologies/Потребление на технологии]
85
86Python 3
87
88Pygame - за визуализация, управление на прозореца, движение на обектите, засичане на клавиши и collision-и.
89
90random - за определяне на шанса за падане на предмети след убиване на зомби.
91
92math - за изчисляване на посока на движение, разстояние между обекти и радиус на експлозия на граната.
93
94pytest - за тестване на основната логика на играта.
95
96GitHub - за качване и поддържане на проекта.
97"""


----------------------------------------------------------------------
Ran 0 tests in 0.000s

NO TESTS RAN

Дискусия
Владимир Апостолов
20.05.2026 15:01

Ookei, znachi planut mi e da go napravq skuchno i da imam sigurna osnova i posle da nadgradq s po zabavnite neshta i shte pishta tuk za da ni durja v techenie
Виктор Бечев
20.05.2026 14:35

Не мерим по обем, защото нещо можеш да напишеш на 20 и на 50 и да върши една и съща работа. Разбира се, очевидно със 100 реда код няма как да станат нещата, защото все пак искаме да проверим знанията по [Python](https://www.youtube.com/watch?v=kYC47DYLq2I) и има някакъв минимален обем от питонски код, който трябва да разгледаме. Що се отнася до нещата, които си споменал и дали могат да отпаднат - ако искаш да наблегнеш на нещо друго - няма проблем. Например ако искаш да направиш Boss Fight системата нещо яко - давай смело. Ако обаче Boss Fight системата е по-голям правоъгълник с различна картинка и различни показатели - това са 5 реда, и то не код, а конфигурация, спрямо нормалните зомбита. Ако искаш да махнеш анимациите - давай. Ако трябва слагай един червен правоъгълник вместо анимация и т'ва е. Грозничко, но ще можеш да демонстрираш. Но ако накрая остане едно човече, което върви и стреля безкрайни патрони, докато по права линия към него вървят различни картинки и при сблъсък му взимат живот - няма да е особено вълнуващ проект. С други думи, няма да е проект за максимален брой точки.
Владимир Апостолов
20.05.2026 12:23

drop sistema, shtitove. Mislq prorsto da ima random items koito da padat kato granati no nqmam animaciq za tova v pack-a koito polzvam i primerno da ne gi vzimam a da gurmqt vednaga kato padnat. Toest zombito umira i se vzrivqva neshto. Osven tova ima li ogranichenie kolko reda da e koda? Zasega samo animaciite i health bara da raboti kakto trqbva mi e 200 obshto. Ne broim testove
Виктор Бечев
20.05.2026 11:41

Кои неща ти се струват тегави за реална реализация?
Владимир Апостолов
19.05.2026 16:02

Ako nqkoi neshta mi se struvat tegavi za realna realizaciq, moje li da gi propusna?
Виктор Бечев
19.05.2026 15:47

Супер, размерът звучи точно в центъра - постижимо, но не прекалено малко. Достатъчно state, достатъчно логика. Успех с проекта!
История
Това решение има само една версия.