Die Tische

Die Tische

> LeekScript-Tutorial

Sie kennen sicherlich die Analogie zwischen Computervariablen und Boxen: Der Name der Variablen steht auf dem Etikett der Box; Wenn Sie die Variable aufrufen, sehen Sie sich nur an, was in der Box steht.

Nun, wir können eine ähnliche Analogie zwischen Gemälden und einer Kommode ziehen. Eine Kommode ist ein Möbelstück, das mehrere Schubladen enthält ... ein Tisch ist eine Einheit, die mehrere Variablen enthält. Schematisch, das ist alles.

Ein Array initialisieren

Ein Array wird durch eckige Klammern dargestellt. Das folgende Beispiel erstellt ein leeres Array:

var foo = [];

Wir erkennen das Schlüsselwort var wieder, das wir bereits für Variablen verwenden. foo ist daher eine Variable vom Typ Array.

var Frucht = ["Birne", "Banane", "Apfel"];

Hier haben wir das Array mit 3 Werten initialisiert. Grundsätzlich legen wir die Kette „Birne“ in die erste Schublade, „Banane“ in die zweite und „Apfel“ in die dritte. Wenn wir die ersten 2 Früchte vertauscht hätten, hätten wir ein anderes Bild gehabt.

Aufräumen ist schön, aber man muss wissen, wie man damit umgeht... Nun, es ist einfach, wenn Sie wissen, wie man von 0 an zählt (denn beim Rechnen zählen wir gerne von 0 an!)

Die erste Schublade trägt die Nummer 0, die zweite die Nummer 1 und die dritte die Nummer 2. Hätten wir eine Tabelle mit 100 Zellen, würde die letzte also die Nummer 99 tragen. Okay, was jetzt? Es ist ganz einfach, um ein Kästchen zu verwenden, geben Sie einfach seine Nummer in eckigen Klammern an:

debug(frucht[1] );

In diesem Beispiel wird daher Feld Nummer 1 (also das zweite Feld) der Tabelle mit dem Namen Früchte angezeigt. Hier wird also der String „Banane“ angezeigt.

Was ist, wenn wir den Wert ändern wollen? Nichts könnte einfacher sein, wir machen es wie bei den Variablen und geben immer das zu ändernde Feld an:

Frucht[1] = "Kirsche"; debuggen (Frucht); // wird ["Birne", "Kirsche", "Apfel"] ausgeben

Einfach, oder?

Was ist, wenn ich nach einer Box frage, die es nicht gibt? Art im vorherigen Beispiel, ich frage obst[3]?

Gut gesehen ! Das dritte Kästchen ist Nummer 2, also existiert Kästchen Nummer 3 nicht! In diesem Fall wird der Wert „null“ zurückgegeben.

Nun, ich habe dein Ding mit dem Code unten ausprobiert und es zeigt seltsame Dinge, sieht aus, als hätte ich alles kaputt gemacht!

var Frucht = ["Birne", "Banane", "Apfel"]; debuggen (Frucht); // wird ["Birne", "Banane", "Apfel"] ausgeben obst[3] = "ananas"; debuggen (Frucht); // gibt aus ["Birne", "Banane", "Apfel", "Ananas"] Frucht[50] = "Kirsche"; debuggen (Frucht); // gibt aus [0:"Birne", 1:"Banane", 2:"Apfel", 3:"Ananas, 50:"Kirsche"]

Keine Sorge, junger Padawan, du hast überhaupt nichts kaputt gemacht! Da die Kästchen zwischen dem letzten Element des Arrays (Nummer 3) und dem Element, das Sie hinzufügen möchten (Nummer 50), nicht vorhanden sind, wird die Datei leekscript verwandelte Ihr Array in ein assoziatives Array. Das erkläre ich dir am Ende dieses Tutorials. Bedenken Sie zunächst, dass es sich um einen normalen Tisch handelt, bei dem die Nummerierung der Kästchen ein Loch hat.

Einige Leekwars-Funktionen geben uns direkt ein Array. Dies ist beispielsweise bei der Funktion getAliveEnemies der Fall.

Eine Tabelle durchsuchen

Alle sehr gut. Jetzt weiß ich, wie man Tabellen erstellt, aber wie zeige ich zum Beispiel die Namen aller an Gegner? Ich weiß nicht, wie viele es sind, und ich werde nicht alles von Hand machen!

Effektiv. Die erste Idee wäre zu tun

var Feinde = getAliveEnemies (); debug(getName(Feinde[0]) ); debug(getName(Feinde[1]) ); debug( getName(Feinde[2]) ); debug( getName(Feinde[3]) ); debug(getName(Feinde[4]) );

Aber wenn es mehr als 5 Feinde gibt, wird es einen Mangel geben, und wenn es weniger sind, gibt es zusätzliche Linien! Um herauszufinden, wie viele Quadrate ein Array hat, ist die Funktion count.

var nbEnemies = count(Feinde); debug("Es gibt noch " + nbEnemies + " Feinde am Leben.");

Nun, wie kann man den Tisch überqueren, ohne sich zu wehren? Wenn Sie beispielsweise wissen möchten, wo sich die Hindernisse auf der Karte befinden, ist getObstacles genau das Richtige für Sie ... Aber der Tisch hat ungefähr hundert Kästchen ... nicht praktisch, um sie einzeln zu machen! Jetzt offenbaren die Les Boucles ihr volles Potenzial!

var hindernisse = getObstacles (); var nbObstacles = count(Hindernisse);

for (var k=0; k<nbHindernisse; k++) { debug("Die Kiste " + Hindernisse[k] + " ist ein Hindernis."); }

Für mehr Präzision gehen Sie zurück zum Tutorial zu The Loops.

Also für den Namen der Feinde wäre das ganze Drehbuch

var Feinde = getAliveEnemies (); var nbEnemies = count(Feinde); for (var k=0; k<nbFeinde; k++) { var feindlicherName = getName( Feinde[k] ); debug( feindlicherName + "lebt noch."); }

Hinzufügen und Entfernen von Elementen

Wir haben bereits gesehen, wie man ein Element in ein Array einfügt, aber es ist nicht praktisch, weil man es ständig tun muss Appell an die Größe des Arrays.

Um sich das Leben zu erleichtern, können Sie einfach die push-Funktion verwenden.

var Frucht = ["Birne", "Banane", "Apfel"]; schieben (f