Seite 2 von 2 ErsteErste 12
Ergebnis 21 bis 24 von 24

Thema: Algorithmus zum anordnen von Gegenstaende...

  1. #21
    Das kommt darauf an was beim KS die Taktik ausmachen soll, aber im Prinzip ist das ja auch deine Entscheidung. Bei einem unbegrenzten Inventar hat man den Vorteil die Gegenstände von Vorne rein in einer festgelegten Reihenfolge anzuzeigen und die leeren Plätze einfach auszulassen.

  2. #22
    Zitat Zitat von lokipoki
    Also welches Verfahren, das Bubble oder das Strait Insertion Verfahren, laesst sich auf mein "Problem" anwenden?
    Wie du willst. Das ganze "Script" muss an deine Vorstellungen und Ideen angepasst werden. Deswegen hab ich keinen direkten RPG Maker Code geschrieben, sondern verallgemeinert. Strait Insertion ist schwieriger, passt aber besser.

    Zitat Zitat von lokipoki
    Habe ich das richtig verstanden, dass das Strait Insertion Verfahren aufgerufen wird wenn ich ein Item aufnehme und es dann automatisch geordnet wird?
    Ja. Sozusagen ist die Item-Posi-Liste eine Highscoreliste mit den zB. zehn meist vorhandenen Items. Nur wird es nie einen elften "Rang" geben, da das ja beim Item-Aufsammeln ausgeschlossen werden muss. Ist also noch ein Platz frei, wird das neue Item eingeordnet indem die entsprechenden alten verrrückt werden.

    Zitat Zitat von lokipoki
    Und wieso "*Komlette ItemPosi-Liste leeren mit Schleife oder einzeln*"? Hab ich auch nicht ganz verstanden...
    Ja, gut mitgedacht. Da hab ich einen Fehler gemacht um im Nachhinein vergessen was zu sagen:
    Wenn das aufgesammelte Item noch nicht im Inventar ist, wird es einfach reingesteckt - also der Code ausgeführt. Gibt es aber das Item im Inventar schon (was häufig der Fall sein wird), müsste man es ja an eine andere Position stellen. Deswegen löscht man vor dem Aufnehmen des Items den Inhalt der ItemPosiVars (auf null setzen) uns sortiert noch mal die ganze ItemPosiListe (Kartenhand) von vorne. Beim Kartenspiel-Beispiel würde das bedeuten, dass es auch nuller Karten gibt die beim Ziehen auf dem Tisch liegen gelassen werden.
    Beim genannten Quellcode bedeutet also *Komplette ItemPosi-Liste leeren mit Schleife oder einzeln* dass es nochmal einen Loop ganz außenrum gibt, der die Var2 definiert. Es wird also nicht nur das gerade aufgenommene Item einsortiert, sondern alle Items > null in die Liste einfügt. Damit das jetzt nicht zu kompliziert wird, nochmal der Vorgang in Stichpunkten:

    1. Das Item +1 (statt zum zB. sechs jetzt sieben Heiltränke)
    2. Die ItemPosiVars = 0 (Highscoreliste der Itemanzahl leeren)
    3. Erstes Item mit Anzahl > Null suchen und einsortieren (Erste Karte in die Hand nehmen)
    4. Zweites Item mit Anzahl > Null suchen und einsortierem (zweite Karte in die Hand sortieren)
    5. So oft wiederholen wie ItemPosiVars vorhanden (Karten aufnehmen und einsortieren, wenn max. Kartenhandzahl noch nicht erreicht)

    Würde man Bubble Sort nehmen, müsste man bei 1000 verschiedenen Items im Spiel auch 1000 ItemPosiVars machen.

  3. #23
    Ok hab jetzt alles verstanden. Nochmals ein grosses DANKE.

    Doch leider kann ich mit dem Strait Insertion nichts anfangen, da ich dem Spieler es das Ordnen selber ueberlassen will. D.h. das ich in meinem Menue eine button ordnen habe, und der auch diese bewerkstelligen sollen. Aufsteigend, nach ItemID, ordnen und eben Luecken aufuellen...

  4. #24
    Geht doch mit Strait Insertion. Genau dazu ist es ja gedacht.
    Wenn es so funktionieren soll, wird beim Aufsammeln des Items nur geguckt ob die Tasche nicht schon voll ist und erst beim Betreten des Menüs sortiert (je nachdem welche Sortier-Kategorie gerade angezeigt wird). Drückst du einen der Buttons zum "Sortieren nach was auch immer" wird die Itemliste gelöscht und entsprechend sortiert:
    1. erstes Item der entsprechenden Kategorie größer null einfügen
    2. zweites Item der entsprechenden Kategorie größer null einsortieren*
    3. drittes Item ...
    4. ...
    n. letztes Item der entsprechenden Kategorie größer null einsortieren*

    (*einsortieren heißt nach hinten verschieben der Items die kleiner sind)


    Such dir eine Methode aus:
    - von Übelster Held (hab ich nicht analysiert)
    - von Kelven (jedes Item braucht zwei Variablen (Quelltextänderung nötig), häufige Durchläufe)
    - Bubble Sort (jedes Item braucht zwei Variablen)
    - Strait Insertion (komplizierter, jedes Item braucht eine Var, ItemPosiVars)

Berechtigungen

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