Array oder Liste? Löschen eines Wertes

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Array oder Liste? Löschen eines Wertes

    Steh gerade auf dem Schlauch und Hilfe und Suchfunktion haben mir nichts gebracht.

    Also zum Problem:
    Ich will so etwas wie eine simple KI entwickeln. Die Pläne,was die Ki als nächstes vor hat, wollte ich in einem Array speichern.
    Beispiel 1,3,4,2 (1=Springen 3=Laufen ... also springe zu erst, wenn fertig laufe, dann ...)

    1. So weit würde ich es noch hinbekommen, aber hab keine Funktion gefunden die bei arrays einen einzellnen Wert bei einem Index löscht, so dass alle
    vorrücken. Wollte machen, dass, wenn eine Aufgabe abgeschlossen ist, der Wert gelöscht wird und dann die zweite Aufgabe, an erster Stelle steht.

    2. Dann hab ich überlegt eine Liste anzulegen, weil diese scheinbar solche Löschfunktionen hat. Die ist aber global, oder? Wollte aber für jede einzellne Ki eine lokale Abfolge/Liste.

    Vielleicht habt ihr ja eine Lösung für das Problem. Schonmal danke im Vorraus.
  • Ich glaube, was du brauchst, ist eine Schlange.
    Und wenn jede Instanz ihre eigene Schlange haben soll, erstellst du halt für jede eine neue:

    GML-Quellcode

    1. // Create Event
    2. myQueue := ds_queue_create() ;


    GML-Quellcode

    1. // Destroy Event
    2. ds_queue_destroy(myQueue) ;


    GML-Quellcode

    1. // Etwas ans Ende der Schlange speichern
    2. ds_queue_enqueue(myQueue, foo);
    3. // Ersten Wert der Schlange lesen
    4. foo := ds_queue_head(myQueue);
    5. // Ersten Wert löschen
    6. ds_queue_dequeue(myQueue);
    7. // Beides gleichzeitig
    8. foo := ds_queue_dequeue(myQueue);
    Alles anzeigen
  • Wollt das mal testen, wobei mir dann aufgefallen ist, dass Listen und "Schlangen" nur bei der Proversion verfügbar sind.
    Weiß jetzt noch nicht, ob ich mich deswegen registriere.

    Trotzdem hab ich das mal als gelöst markiert, weil es ja eigentlich funktionieren müsste bzw. genau das ist, was ich brauche.^^