Migrieren von LeekScript 1 zu 2

Migration LeekScript 1 zu 2

> LeekScript-Tutorial

Diese Anleitung zeigt die verschiedenen Punkte, die Sie überprüfen sollten, wenn Sie Ihr AI LeekScript 1 auf 2 migrieren möchten. Weitere Informationen zur Version selbst finden Sie auf der Seite zu LeekScript 2.

Aktivieren von LeekScript 2

Um LeekScript 1 auf einer alten KI zu aktivieren, klicken Sie einfach auf „LeekScript 1“ links in der Statusleiste, die sich am unteren Rand des Editors befindet. Es öffnet sich ein Menü und Sie können auf „LeekScript 2“ klicken, um es zu aktivieren. Die KI wird direkt mit den neuen Regeln geparst.

Standard-Pass-by-Referenz

In LeekScript 2 werden im Gegensatz zu LeekScript 1 alle Werte per Referenz übergeben, mit Ausnahme von primitiven Werten (Zahlen, Booleans, Strings).

Sie können also alle @ aus Ihrem Code entfernen. (Achtung bis dato funktioniert das Kompilieren mit dem @ nicht).

Wenn Sie beispielsweise rekursive Algorithmen mit Arrays codiert haben, achten Sie darauf, die als Parameter übergebenen Arrays bei jedem Aufruf manuell mit der Funktion clone() zu kopieren.

Verweise

In LeekScript 1 ist es nicht möglich, auf eine Zahl, einen booleschen Wert oder eine Zeichenkette zu verweisen. Es ist notwendig, diese Werte in einem Array oder einem Objekt zu kapseln, um dieses Verhalten zu reproduzieren.

Klassen und Objekte verwenden

Reservierte Schlüsselwörter

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, so dass einige davon ggf. geändert werden müssen.

Betriebskosten

Aufgrund der neuen Regeln, insbesondere Pass-by-Reference, kann LeekScript 2 viel weniger Operationen verbrauchen. Wenn Sie Bedingungen für die aktuelle Anzahl von Operationen verwendet haben, wie zum Beispiel „if (getOperations() < 15000000)“, kann sich die KI anders verhalten.

ArrayFilter

Die Funktion arrayFilter hat von einer Korrektur profitiert: Das resultierende Array wird neu indiziert und ist daher nicht mehr assoziativ mit bestimmten Nullwerten. Achten Sie darauf, Ihre Algorithmen zu aktualisieren, wenn Sie sich in diesem Fall befinden.

##-Operator ^=

Der Operator „^=“ ändert seine Bedeutung: Er drückte den Potenz + Zuweisungsoperator in LeekScript 1 aus und drückt jetzt den binären OR-Operator in LeekScript 2 aus.