Loading...

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

nightxx avatar nightxx -2 Точки

ООП Basic въпрос

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

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

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

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

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

Тагове:
0
C# OOP Basics
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
Filkolev avatar Filkolev 4482 Точки

Затова трябва да си избистриш концепцията на играта. Ако ще имплементираш комбинаторно всяко едно свойство - ще станат много класове, да.

Повторение на код няма при добре направена структура. Ако различните ти обекти имат еднакво поведение, например движат се еднакво, значи трябва да имаш абстрактен клас, който да опише това поведение и след това наследниците му го наследяват и няма да има нужда да го пишеш наново.

Прегледай курса по ООП, там би трябвало да ти се изяснят нещата. Обърни специално внимание на лабовете и уъркшопите, защото там по-цялостно са развити тези неща.

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