Показать сообщение отдельно
Старый 15.01.2009, 21:41   #35
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Блиц против ООП ;-)))

Был у меня забавный случай изучения сорца некого товарища, котрый настолько любил ООП что чули TType там небыло))) Ну уж настолько всё было ужасно. Дерево обьектов имело ветки длиной около 40 вложений(зы ответвлений). Сорец был на C Sharp. Эх был бы он у меня... Вместе бы посмеялись. ООП это сила но переусертствовать не надо.
А вобще кто сказал что на блице3д нельза делать ооп.
Скажем добавить в каждый тип параметр Parent в котором хэндл на тип владелец. Или жосткую типизацию без хэндла, это менее гибко.
В довешеннее вышесказаному скажу что я всёже за ООП но не за переусердствование. Классов и наследников не должно быть слижком много. Вобще при должном подходе можно обойтись и вобще без типов но это тоже самое что и молотком делать тунель в скале нежели взять динамит.
Был на памяти один знакомый, который вместо:

Type TBot
field HP
field MaxHP
field x,y,z
field bottype, ent
EndType

Писал:

Dim BotHP(9999)
Dim BotMaxHP(9999)
Dim BotX(9999)
Dim BotY(9999)
Dim BotZ(9999)
Dim BotType(9999)
Dim BotEnt(9999)
BotCount=0

Но так нельзя.
Я его спросил:
Я: Что будет если убивают одного из ботов?
Он: BotCount-1
Я: А если убьют допустим третьего а всего их 10?
Он: Ну у меня проверка по BotEnt(i) есть если он пуст то цикл идёт дальше

Ерунда налицо. Игру он делал типа Сrimsonland и получается что после убийства 500 ботов игра будет сильнейшим образом тормозить. При попытке пустить его в нужное русло и обратить взгляд его на типы он очень сильно ругался и говорил что типы это бездарно. В общем каждый прогает как умеет и грабли у всех свои.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием