Loading...
nightxx avatar nightxx -2 Точки

ООП Basic въпрос

От доста време искам да си направя игра, но това е един огромен проблем пред мен.

Имам един МайнБлок от него тръгва всичко и той пази само координати и в последствие вероятно още много, но за сега само за това се сещам.

От него се разклонява на Блокчета с Health и такова без.

От тях се разделя на Блокчета който могат да се движат и такива, който не могат.

Общо така стават 4 класа и твърде много повтаряне на код. Немога да измисля по - добър начин ако някой знае някакъв по - различен начин ще му бъда благодарен :)

Тагове:
0
C# OOP Basics
RoYaL avatar RoYaL Trainer 6849 Точки

Не си казал никакъв обджектив на играта, още по-малко пък си дал код. "ООП игра" е много абстрактно - какво точнос е опитваш да направиш? ООП не е някакъв свети граал :) Просто парадигма, която репрезентира реалния свят. Ако в играта си имаш играч, противници, карта, предмети и прочие неща - значи перфектно могат те да бъдат обекти.

1
Filkolev avatar Filkolev 4482 Точки

Структурата звучи доста стандартно.

Предполагам само блокчетата с health разграничаваш на подвижни и неподвижни?

Как според мен би изглеждало. Имаш два интерфейса - IDestroyable примерно за обектите с кръв (името е по конвенцията за C#), и IMoveable за движещите се.

Имаш един абстрактен клас блокче. Него го наследяват два класа, не мога да ти препоръчам имена, понеже не знам контекста. Но единият клас ще е абстрактен също и ще имплементира IDestroyable, а другият няма да го имплементира. Вторият клас дали ще е абстрактен зависи от логиката ти.

Класа, който е IDestroyable го наследяват два класа, от които единия имплементира IMoveable, а другият не.

Повторение на код не би трябвало да се получава; ако имаш някакви общи функционалности изкарваш ги в клас родител, а в наследниците имплементираш само уникалните за тях неща и преизползваш нещата, които имаш в родителя.

1
nightxx avatar nightxx -2 Точки

Блокчетата с хелт се делят на подвижни и неподвижни както и тези без хелт

 

-1
Filkolev avatar Filkolev 4482 Точки

В такъв случай изчисти си логиката кое блокче какво е и направи 4 класа, като всеки имплементира различни интерфейси, т.е. един клас няма да имплементира никой, два класа ще имплементират по един интерфейс и последния клас имплементира и двата.

Но както RoYal каза, малко ти е абстрактна идеята към момента и по-качествени препоръки трудно ще ти дадем ако не знаем точно какво искаш да направиш.

1
nightxx avatar nightxx -2 Точки

Така няма ли твърде много повтаряне на код.
А какво става ако не са само хелт и движение ами и др.

-1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.