Ergebnis 1 bis 11 von 11

Thema: KS-Hilfe (ja, nur Hilfe)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #9
    Achtung, den folgenden Beitrag habe ich ursprünglich für ein anderes Problem geschrieben, das Prinzip ist aber das selbe.
    Man sollte allerdings gut mit den Variablenfunktionen umgehen können um es zu verstehen.
    Die IDs des zweiten Arrays können für die Gegner stehen. Das ganze ist für 7 Elemente ausgelegt, du müsstest es also noch um eines erweitern für 8 Kämpfer (4 Helden + 4 Gegner).
    Hinweis: Die originalen Werte für das Beispiel standen in den Variablen 1-7 und wurden in die Variablen 11-17 rüberkopiert.

    Zitat Zitat
    Erstmal solltest du das ganze per Bubble sort sortieren, so dass zum Schluss die größte Variable am Anfang und die kleinste am Ende des Arrays steht.
    Da ich nicht weiß wie du die Variablen anderweitig verwendest, lasse ich ihnen mal ihre Werte. Allerdings müssen die Werte in einen temporären Array rüberkopiert werden.

    Also z.B.:

    Variable 11: 3
    Variable 12: 7
    Variable 13: 85
    Variable 14: 11
    Variable 15: 1
    Variable 16: 99
    Variable 17: 2

    Zusätzlich wird ein weiterer Array erstellt, der die IDs der Orginalvariablen in paralleler Reihenfolge zum Originalarray beinhaltet.

    Variable 21: 1
    Variable 22: 2
    Variable 23: 3
    Variable 24: 4
    Variable 25: 5
    Variable 26: 6
    Variable 27: 7

    Nun kommt der Bubblesort zum tragen. Zuerst wird das erste Element des temporären Arrays (11-17) mit dem zweiten Element mithilfe von Zeigervariablen verglichen. Ist es kleiner, so werden beide Elemente miteinander vertauscht, da das größte Element an den Anfang des Arrays wandern soll. Parallel dazu werden im ID Array (21-27) das erste und zweite Element vertauscht.
    Nun wird im 11-17 Array das zweite und dritte Element miteinander verglichen, gegebenenfalls vertauscht und das selbe im 21-27 Array vorgenommen.
    Und das wird solange gemacht, bis Element 6 und 7 miteinander verglichen wurden.
    Bei jeder Vertauschung muss ein Switch angeschaltet werden. Am Ende dieser Vergleichsaktion wird abgefragt, ob der Switch an oder aus ist. Ist er an so bedeutet dies, dass irgendwo ein Vertausch vorgenommen wurde und es gut möglich ist, dass einige Elemente noch in der falschen Reihenfolge sind. Das ganze muss also wiederholt werden, es muss also der gesamte Code in einen Cycle.
    Am Anfang dieses Cycles muss der Switch logischerweise wieder ausgeschaltet werden.
    Ist der Switch jedoch aus bedeutet dies, dass kein Vertausch von statten ging. Dies bedeutet gleichzeitig, dass sich alle Elemente in der richtigen Reihenfolge befinden. Der Cycle kann also durchbrochen werden.

    Der 21-27 Array hat nun folgende Werte:

    Variable 21: 6
    Variable 22: 3
    Variable 23: 4
    Variable 24: 2
    Variable 25: 1
    Variable 26: 7
    Variable 27: 5

    Zuerst wird also die Variable mit der ID 6 abgerufen, dann die mit der ID 3 usw...

    Hier hab ich mal ein Skript dazu.
    (Rechtsklick -> Ziel speichern unter oder Link in Adressleiste kopieren)

    Geändert von Gekiganger (08.01.2004 um 23:43 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •