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

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

5 точки общо

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

 1"""
 2[Title/Звание]
 3
 4    'Agar.io'
 5
 6[Description/Обрисовка]
 7
 8    Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели.
 9
10[Functionalities/Надарености]
11
12    Стартиране
13        Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват.
14        Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър
15        Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране)
16
17        Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата.
18
19        Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране.
20    Игра
21        - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината.
22        - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни.
23        - Когато играч бъде погълнат, той се съживява автоматично
24        - Налично е класиране на играчите според големината им.
25        - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта.
26
27        Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства.
28    
29    Изход
30        - всеки може да напусне играта, когато пожелае
31    
32    Край на играта
33        - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва
34
35[Milestones/Възлови точки]
36
37    Клас, управляващ състояние на играта: GameState
38        Класове, които той композира пряко или непряко
39            Клас, управляващ състоянието на играч: Player
40            Клас, управляващ състоянието на храна: Food
41            Клас, управляващ кръгъл обект: Circle
42            Клас, управляващ наредена двойка: Vector
43    Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen
44    Интерфейс, управляващ възел в мрежа: Node
45    Интерфейс, управляващ клиентски възел в мрежа: client
46    Интерфейс, управляващ сървърен възел в мрежа: server
47    Клас, който менажира сървъра на играта: server
48    Клас, който менажира клиент(играч) в играта: client
49
50[Estimate in man-hours/Времеоценка в човекочасове]
51
52     47 часа
53
54[Usage of technologies/Потребление на технологии]
55    Интерфейс - Pygame
56    Комуникация между клиент/сървър - socket.io, pickle, 
57    Многонишково програмиране - treading
58"""


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

NO TESTS RAN

Дискусия
Никола Георгиев
28.11.2024 19:50

ясно класирането засега съм го замислил да е собственост на игра и съответно пази информация за активните играчи в тази игра, и когато играта приключва и спира да съществува, класирането спира да съществува заедно с нея. Иначе идеята е много готина и ще си я сложа в списъка с неща които бих добавил след като реализирам версията съдържаща нещата по-горе. :)
Виктор Бечев
28.11.2024 18:34

Понякога и аз не се разбирам. Аз малко приех следната точка: ``` - Налично е класиране на играчите според големината им. ``` Сякаш ще има и някакъв persistent scoreboard, от всички игри. Ти никъде не си го намекнал, но аз поради някаква причина си го въобразих. Ако няма да има - коментарът ми отпада.
Никола Георгиев
28.11.2024 17:38

Не съм сигурен че те разбрах
Виктор Бечев
28.11.2024 16:04

С теб вече сме обсъждали темата и нямам какво да ти дам като допълнителна обратна връзка. Единственото, което не съм сигурен, че сме засягали е това дали ще има някаква форма на persistency по отношение на класацията по точки. Смятам, че би било хубаво, да е така, а не би следвало да е безкрайно голяма инвестиция от време.
История

n1"""n1"""
2[Title/Звание]2[Title/Звание]
33
n4    'Agar.io'n4    'Agar.io'
55
n6[Description/Обрисовка]n6[Description/Обрисовка]
77
n8    Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели.n8    Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели.
99
n10[Functionalities/Надарености]n10[Functionalities/Надарености]
1111
n12    Стартиранеn12    Стартиране
13        Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват.13        Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват.
14        Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър14        Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър
15        Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране)15        Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране)
1616
n17        Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата.n17        Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата.
1818
n19        Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране.n19        Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране.
20    Игра20    Игра
21        - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината.21        - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината.
22        - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни.22        - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни.
23        - Когато играч бъде погълнат, той се съживява автоматично23        - Когато играч бъде погълнат, той се съживява автоматично
24        - Налично е класиране на играчите според големината им.24        - Налично е класиране на играчите според големината им.
25        - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта.25        - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта.
2626
n27        Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства.n27        Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства.
28    28    
n29    Изходn29    Изход
30        - всеки може да напусне играта, когато пожелае30        - всеки може да напусне играта, когато пожелае
31    31    
n32    Край на игратаn32    Край на играта
33        - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва33        - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва
3434
n35[Milestones/Възлови точки]n35[Milestones/Възлови точки]
3636
n37    Клас, управляващ състояние на играта: GameStaten37    Клас, управляващ състояние на играта: GameState
38        Класове, които той композира пряко или непряко38        Класове, които той композира пряко или непряко
39            Клас, управляващ състоянието на играч: Player39            Клас, управляващ състоянието на играч: Player
40            Клас, управляващ състоянието на храна: Food40            Клас, управляващ състоянието на храна: Food
41            Клас, управляващ кръгъл обект: Circle41            Клас, управляващ кръгъл обект: Circle
42            Клас, управляващ наредена двойка: Vector42            Клас, управляващ наредена двойка: Vector
43    Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen43    Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen
44    Интерфейс, управляващ възел в мрежа: Node44    Интерфейс, управляващ възел в мрежа: Node
45    Интерфейс, управляващ клиентски възел в мрежа: client45    Интерфейс, управляващ клиентски възел в мрежа: client
46    Интерфейс, управляващ сървърен възел в мрежа: server46    Интерфейс, управляващ сървърен възел в мрежа: server
47    Клас, който менажира сървъра на играта: server47    Клас, който менажира сървъра на играта: server
48    Клас, който менажира клиент(играч) в играта: client48    Клас, който менажира клиент(играч) в играта: client
4949
n50[Estimate in man-hours/Времеоценка в човекочасове]n50[Estimate in man-hours/Времеоценка в човекочасове]
5151
n52     47 часаn52     47 часа
5353
t54[Usage of technologies/Потребление на технологии]t54[Usage of technologies/Потребление на технологии]
55    Интерфейс - Pygame55    Интерфейс - Pygame
56    Комуникация между клиент/сървър - socket.io, pickle, 56    Комуникация между клиент/сървър - socket.io, pickle, 
57    Многонишково програмиране - treading57    Многонишково програмиране - treading
58"""58"""
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op

n1"""n1"""
2[Title/Звание]2[Title/Звание]
33
n4    'Agar.io'n4    'Agar.io'
55
n6[Description/Обрисовка]n6[Description/Обрисовка]
77
n8    Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели.n8    Проектът е пресъздаване на популярната онлайн мултиплейър PvP игра, в която всеки започва като малко кръгче и хранейки се с чуждата плът се превръща в голям дебел все по-гладен кръг. Колкото повече врагове изяждаш, толкова по-голям ставаш, а с нарастването на размера, се изкачваш нагоре във временното класиране. Най-големият или последният останал жив печели.
99
n10[Functionalities/Надарености]n10[Functionalities/Надарености]
1111
n12    Стартиранеn12    Стартиране
13        Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват.13        Потребителите трябва да са изтеглили сорса на системата на компютър поддържащ python и зависимите пакети, за да могат да я ползват.
14        Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър14        Трябва един от потребителите да стартира сървър на игра, за да може системата да се ползва. Това става чрез изпълнението на команда и/или отваряне на изпълним файл за сървър
15        Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране)15        Потребителите могат да се включват в играта като стартират изпълнимият файл за играта (команда за стартиране)
1616
n17        Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата.n17        Ограничение: играта ще бъде тествана само на едно устройство, т.е. няма да се проверява дали мултиплейър логиката действително работи при множество възли от различни устройства в мрежата.
1818
n19        Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране.n19        Зад кулисите това се реализира чрез клиент-сървър логика, където сървърът обработва мрежовите заявки на клиентите (играчите), използвайки библиотеката socket.io и многонишково програмиране.
20    Игра20    Игра
21        - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината.21        - След стартирането на сървъра играта започва и всеки нов потребител получава кръгъл играч с начален радиус в равнината.
22        - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни.22        - Потребителите могат да се движат на картата, да поглъщат хранителни обекти, и да поглъщат други играчи, като поглъщането ги прави по-големи, но и по-бавни.
23        - Когато играч бъде погълнат, той се съживява автоматично23        - Когато играч бъде погълнат, той се съживява автоматично
24        - Налично е класиране на играчите според големината им.24        - Налично е класиране на играчите според големината им.
25        - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта.25        - Действията на всеки играч на картата са напълно синхронизирани с действията на кой да е друг играч на картата и текущото състояние на играта.
2626
n27        Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства.n27        Зад кулисите това се реализира чрез клас, детерминиращ състоянието на играта, и изпращането на негови инстанции по мрежата към всички заинтересовани възли, при определени обстоятелства.
28    28    
n29    Изходn29    Изход
30        - всеки може да напусне играта, когато пожелае30        - всеки може да напусне играта, когато пожелае
31    31    
n32    Край на игратаn32    Край на играта
33        - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва33        - когато всички играчи напуснат или сървърът прекрати работата си, играта приключва
3434
n35[Milestones/Възлови точки]n35[Milestones/Възлови точки]
3636
n37    Клас, управляващ състояние на играта: GameStaten37    Клас, управляващ състояние на играта: GameState
38        Класове, които той композира пряко или непряко38        Класове, които той композира пряко или непряко
39            Клас, управляващ състоянието на играч: Player39            Клас, управляващ състоянието на играч: Player
40            Клас, управляващ състоянието на храна: Food40            Клас, управляващ състоянието на храна: Food
41            Клас, управляващ кръгъл обект: Circle41            Клас, управляващ кръгъл обект: Circle
42            Клас, управляващ наредена двойка: Vector42            Клас, управляващ наредена двойка: Vector
43    Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen43    Клас, който менажира визуализацията на информация в потребителския интерфейс: Screen
44    Интерфейс, управляващ възел в мрежа: Node44    Интерфейс, управляващ възел в мрежа: Node
45    Интерфейс, управляващ клиентски възел в мрежа: client45    Интерфейс, управляващ клиентски възел в мрежа: client
46    Интерфейс, управляващ сървърен възел в мрежа: server46    Интерфейс, управляващ сървърен възел в мрежа: server
47    Клас, който менажира сървъра на играта: server47    Клас, който менажира сървъра на играта: server
48    Клас, който менажира клиент(играч) в играта: client48    Клас, който менажира клиент(играч) в играта: client
4949
n50[Estimate in man-hours/Времеоценка в човекочасове]n50[Estimate in man-hours/Времеоценка в човекочасове]
5151
n52     47 часаn52     47 часа
5353
t54[Usage of technologies/Потребление на технологии]t54[Usage of technologies/Потребление на технологии]
55    Интерфейс - Pygame55    Интерфейс - Pygame
56    Комуникация между клиент/сървър - socket.io, pickle, 56    Комуникация между клиент/сървър - socket.io, pickle, 
57    Многонишково програмиране - treading57    Многонишково програмиране - treading
58"""58"""
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op