Fragen zu OOP, Lists, Include

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

Lador

Betreff: Fragen zu OOP, Lists, Include

BeitragMo, März 23, 2009 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Community.

Ich hab da ein paar Fragen, die ich gerne mal loswerden würde...

Zum einen: Was genau bringt OOP? Wann sollte man es verwenden und wann nicht? Und ist es besser, große Funktionen zu machen, und die dann im Hauptprogramm aufzurufen (damit meine ich keine Type-Funktionen, sondern nur welche, damit mein Programm strukturierter ist), oder lieber jede Kleinigkeit als Type-Funktion/-Methode zu machen? Weil ich mir den Code relativ unübersichtlich vorstelle, wenn meine Types zig Funktionen und Methoden und noch massenweise Fields beinhalten... Also, ich kann zwar OOP, aber das würde mich wirklich mal interessieren, was ihr dazu sagt.

Was ich auch noch wegen OOP fragen wollte, ist das Thema Lists bzw. Arrays. Ich habe zurzeit in meinem Spiel (unter anderem) einen Type TGegner, und damit es mehrere Gegner gibt, hab ich einfach ein Type-Array gemacht, also z.B. Gegner:TGegner[10]. Und die Eigenschaften dann einfach Gegner[4].Leben = 18. Lohnt es sich, die Gegner in Lists zu speichern, auch wenn ich genau weiß, wie viele Gegner ich im Spiel haben werde? Hab zwar gehört, dass Type-Arrays schneller sein sollen, aber ist da ein bedeutender Unterschied in BlitzMax? Was würdet ihr mir empfehlen?

Und noch eine kurze Frage wegen Include. Wird mein Programm langsamer, wenn ich ganz viele Include-Dateien habe? Also zum Beispiel sind meine 25 Funktionen auf 5 Dateien aufgeteilt genauso schnell wie wenn ich sie auf 10 Dateien aufteilen würde und diese alle in meiner Hauptdatei aufrufe?

Danke schon mal im Voraus!

MFG Lador
Mein aktuelles Projekt:
2D-Rollenspiel "Iliran"
Screenshot | Worklog
Fortschritt: ca. 70%

ChaosCoder

BeitragMo, März 23, 2009 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Zur letzten Frage: Nein, es ist genauso schnell. Die Includes dienen nur der Wartbarkeit und Übersichtlichkeit. Ist das Programm kompiliert gibt es quasi die Includes nicht mehr, sie befidnen sich dann direkt in der Datei.
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

coolo

BeitragMo, März 23, 2009 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Es bringt dir sehr viel! Übersichtlichkeit, Modularität, Einfachkeit!
2. Es ist soweit ich weiß bei dieser Menegenanzahl egal was du nimmst, kommt drauf an was dir mehr liegt
3. Es ist ganz im Gegenteil! Bmax verwendet vorkompilierte Module, das heißt das Kompilieren geht schneller (oder bin ich da falsch informiert?). Und die Programmlaufzeit stört es überhaupt nicht!
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat
 

Ava

Gast

BeitragMo, März 23, 2009 22:40
Antworten mit Zitat
Deinem Programm ist es relativ schnuppe, ob Du einen riesigen Quelltext hast oder das selbe Zeug in 10 Dateien aufsplittest und includest. Include bietet allerdings auch keinen Geschwindigkeitsvorteil beim Compilieren (@coolo) - im Gegensatz zu Import. Damit bindest Du dann aber keinen Quelltext ein, sondern bereits vorcompilierten Code.

@List vs. Array
Wenn die genaue Anzahl Deiner Objekte sicher vorbestimmt ist, dann nimm ein Array. Wenn Du allerdings viele Änderungen hast, würde ich Dir in den meisten Fällen eine Liste empfehlen. Aber letztendlich hängt das auch davon ab, was genau Du brauchst / damit anstellen möchtest. Beides hat untertschiedliche Stärken und Schwächen.

@OOP
Sehr viel übersichtlicher und wesendlich flexibler. Viele Aufgaben können sehr viel einfacher, schneller und eleganter gelöst werden.
 

Lador

BeitragMo, März 23, 2009 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke euch für die vielen und schnellen Antworten!

Ava:
Also, ich hab zwar z.B. nicht die genaue Anzahl der Gegner, aber ich kann ja mein Array immer vergrößern. ^^ Kannst du auch grob ein paar Schwächen und Stärken von Arrays bzw. Lists erläutern? Wäre schön.

MFG Lador
Mein aktuelles Projekt:
2D-Rollenspiel "Iliran"
Screenshot | Worklog
Fortschritt: ca. 70%

DAK

BeitragDi, März 24, 2009 6:06
Antworten mit Zitat
Benutzer-Profile anzeigen
stärken vom array: du kannst jeden einzelnen direkt ansprechen. das kann einen kleinen geschwindigkeitsvorteil bringen, wenn du sehr oft einen direkt ansprechen musst, da dann nicht die gesamte liste durchgegangen werden muss

schwächen vom array: relativ fixe größe. klar kann man resizen, aber das is a) relativ aufwendig und b) relativ langsam

stärken vom list: sehr einfache verwendung
schwächen vom list: wenn du eine list hast, die (z.b.) 200.000 einträge hat und du musst immer den eintrag nr. x ansprechen und die andern nicht, dann ist die list langsamer.

wenn du jedes mal den gesamten inhalt des arrays/der list ansprechen musst hast du keinen geschwindigkeitsunterschied.
wenn du immer nur einen direkt ansprechen musst (und die nummer davon im vorhinein weißt) dann ist ein array schneller.
wenn nicht, dann nimm eine list, weil du dich dann nicht wirklich um die verwaltung kümmern musst.

(falls dir das nicht genug argumente sind, dann denk ich wohl, dass du jemand bist, der sagen würde, nein, ich lerne nicht fahrradfahren sondern bleib beim dreirad, weil mit dem dreirad komm ich ja auch ans ziel. Wink)
Gewinner der 6. und der 68. BlitzCodeCompo
 

Lador

BeitragDi, März 24, 2009 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ihr habt mich überzeugt. Ich bleib beim Fahrrad. ^^ Bzw. ich steig auf Lists um. Danke für eure Antworten!
Mein aktuelles Projekt:
2D-Rollenspiel "Iliran"
Screenshot | Worklog
Fortschritt: ca. 70%

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group