> LeekScript
LeekScript 2 (ehemals LeekScript 1.1) ist die zweite Version von LeekScript, der Sprache von Leek Wars, die am 28. Februar 2021 veröffentlicht wurde. Es zielt darauf ab, die Sprache zu bereinigen, Korrekturen vorzunehmen und orientierte Programmierobjekte hinzuzufügen.
Da die Funktionsweise der Sprache tiefgreifend modifiziert wird, handelt es sich um eine Version ohne Abwärtskompatibilität, die vom Benutzer manuell im Editor aktiviert wird.
Version 2 ist ein Schritt in Richtung der 2016 angekündigten zukünftigen Version. Viele geplante Funktionen sind daher in Version 2 enthalten, sodass die Sprache schrittweise weiterentwickelt werden kann, was für die Codierung komplexer KI sehr vorteilhaft ist.
Eine spezielle Hilfeseite zur Migration ist hier verfügbar: LeekScript 1 to 2 Migration.
Objektorientierte Programmierung hinzugefügt: Klassen und Objekte. Siehe die Seite Klassen und Objekte für die gesamte Dokumentation zu dieser Ergänzung.
Die Schlüsselwörter new, class, extends, static, public, protected, private, implementiert, interface, constructor, this , super und instanceof sind für OOP reserviert und stehen daher nicht mehr für Variablen- oder Funktionsnamen zur Verfügung.
Nicht primitive Werte, dh Arrays und Objekte, werden standardmäßig per Referenz übergeben. Primitive Werte (Zahl, Boolean, String) werden immer kopiert.
Die @-Syntax wird nicht mehr verwendet und ist daher überall veraltet. In LeekScript 2 ist es nicht möglich, Verweise auf einen primitiven Wert zu erstellen.
Möglichkeit, Referenzen in Arrays (und Objekten) hinzuzufügen, wodurch komplexe und/oder rekursive Strukturen zu vernünftigen Kosten erstellt werden können.
Beispiele für Datenstrukturen, die in 1 schwer und in 2 sehr einfach zu erreichen sind:
Eine clone(value, [level])-Funktion hinzugefügt, um einen Wert genau zu klonen:
Im Editor wurden mehrere semantische Fehler statt nur einem zurückgegeben (auch in LS 1 verfügbar).


Unter jedem Fehler wird der vollständige Aufrufstapel angezeigt, anstatt nur eine Zeile davor (auch in LS 1 verfügbar).

Aber es ist natürlich immer möglich, es zu benutzen. (auch in LS 1 verfügbar)
Die Begrenzung der Array-Größe wird aufgehoben, wobei die Betriebskosten ausreichen, um ihre Verwendung einzuschränken.
ArrayFilter behoben: Array wird korrekt neu indiziert, ohne Nullwerte zu hinterlassen.
Es wurde ein Escapezeichen für die Zeichenfolge „\\““ behoben, das korrekt ein einzelnes „\“ anstelle von zwei anzeigt.
Fix für globale Deklarationen über mehrere Dateien hinweg.
Behoben, dass der Operator „^=“ anstelle der Potenz zum binären ODER wurde.
Die Shuffle-Funktion berücksichtigt den mit dem Kampfsamen verbundenen Zufallszahlengenerator und ist daher für denselben Samen deterministisch. Dies könnte zu Abweichungen zwischen zwei Kämpfen führen, die aus demselben Seed generiert wurden, was sich auf die Tests auswirkt.
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.