Zu viel ForEach

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Zu viel ForEach

Beitrag von Leo »

Hmm :)

Ich hab so um die >10 ForEach/Next Schleifen pro Schleifendurchlauf bei meinem Space Invad0rs Clone. Meint ihr das ist so ok? Weil ich glaube es werden bald noch ein paar mehr , und das könnte dann ja auch mal zu viel für den PC sein ^^

:freak:
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Wo ist das Problem? Wenn jede Liste die du mit ForEach durchgehst nicht zu viele Elemente hat sollte es doch kein Problem darstellen, sonst wird´s halt langsamer.

Ich glaube, bevor der PC durchnander kommt, kommt erst der Programmierer durchnander
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Die Frage ist eher warum Du so viele LinkedLists brauchst
und ob Du sie nicht durch Arrays ersetzen kannst.

Falls es nur eine LinkedList ist, ist die Frage warum Du diese
Liste 10 mal und mehr durchgehst. Du solltest dann überprüfen
ob Du sie nicht nur 1 mal durchgehst und alles in einem Durchlauf
machst. Also versuchen die 10+ Durchläufe zusammenzulegen.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8812
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Mal noch als Pseudocode zur Verdeutlichung.

Entweder du machst es so, was umgekehrt geschachtelt zu deine Methode ist:

Code: Alles auswählen

ForEach LinkedList()
  For Modus.l = 1 To 10
    Select Modus
      Case 1
      Case 2
      ...
      Case 10
    EndSelect
  Next
Next
Oder du führst pro Element alle deine Schritte aus.

Code: Alles auswählen

ForEach LinkedList()
  ;Erster Schritt:
  ...
  
  ;Zweiter Schritt:
  ...
  
  ;Zehnter Schritt:
  ...
Next
Aber rein theoretisch brauchst jedes mal genauso viele Durchläufe. Es kommt nur darauf an, ob die Schritte komplett nacheinander mit der gesamten Liste durchgeführt müssen, weil vielleicht der nächste Schritt die Bearbeitung der ganzen Liste vom vorherigen Schritt als Vorraussetzung braucht, oder ob die Schritt völlig unabhängig voneinander sind und man sie theoretisch auch untereinander tauschen könnte oder sie nichts an dem Inhalt der Liste ändern und somit unabhängig bleiben.
Antworten