Migration LeekScript 1 vers 2

Migration LeekScript 1 vers 2

> Tutoriel LeekScript

Ce guide présente les différents points à vérifier si vous souhaitez effectuer une migration de votre IA LeekScript 1 vers 2. Voir la page sur le LeekScript 2 pour plus d'informations sur la version elle-même.

Activation du LeekScript 2

Pour activer le LeekScript 1 sur une ancienne IA, il suffit de cliquer sur "LeekScript 1" à gauche de la barre de status située tout en bas de l'éditeur. Un menu s'ouvrira et vous pourrez cliquer sur "LeekScript 2" pour l'activer. L'IA sera analysée avec les nouvelles règles directement.

Passage par référence par défaut

En LeekScript 2, contrairement au 1, toutes les valeurs sont passées par référence, à l'exception des valeurs primitives (nombres, booléens, chaînes).

Vous pourrez donc supprimer tous les @ de votre code. (nota à date la compilation avec les @ ne fonctionne pas).

Si vous avez codé des algorithmes récursifs avec des tableaux par exemple, attention à bien manuellement copier les tableaux passés en paramètre avec la fonction clone() à chaque appel.

Références

En LeekScript 1, il est impossible de faire des références vers un nombre, un booléen ou une chaine de caractère. Il faudra encapsuler ces valeurs dans un tableau ou un objet pour reproduire ce comportement.

Utilisation des classes et objets

Mots-clés réservés

Les mots-clés new, class, extends, static, public, protected, private, implements, interface, constructor, this, super et instanceof sont réservés pour la POO et ne sont donc plus disponibles pour des noms de variables ou fonctions, il faudra donc en changer certains le cas échéant.

Coûts en opérations

Du fait des nouvelles règles, en particulier du passage par référence, le LeekScript 2 peut consommer bien moins d'opérations. Si vous avez utilisé des conditions sur le nombre actuel d'opérations, comme if (getOperations() < 15000000) par exemple, l'IA pourra se comporter différement.

arrayFilter

La fonction arrayFilter a bénéfié d'une correction : le tableau résultant est réindexé et n'est donc plus associatif avec certaines valeurs nulles. Attention à mettre à jour vos algorithmes si vous vous trouvez dans ce cas.

Opérateur ^=

L'opérateur ^= change de sens : il exprimait l'opérateur puissance + affectation en LeekScript 1 et exprime désormais l'opérateur XOR (OU exclusif) binaire et affectation en LeekScript 2.