Migração LeekScript 1 para 2

Migração LeekScript 1 para 2

> Tutorial LeekScript

Este guia apresenta os diferentes pontos para verificar se você deseja migrar seu AI LeekScript 1 para 2. Consulte a página no LeekScript 2 para obter mais informações sobre a versão em si.

Habilitando o LeekScript 2

Para ativar o LeekScript 1 em um AI antigo, basta clicar em "LeekScript 1" à esquerda da barra de status localizada na parte inferior do editor. Um menu será aberto e você pode clicar em "LeekScript 2" para ativá-lo. A IA será analisada diretamente com as novas regras.

Passagem por referência padrão

No LeekScript 2, ao contrário do LeekScript 1, todos os valores são passados por referência, exceto os valores primitivos (números, booleanos, strings).

Então você pode remover todos os @ do seu código. (nota até hoje a compilação com o @ não funciona).

Se você codificou algoritmos recursivos com arrays, por exemplo, tenha cuidado para copiar manualmente os arrays passados como parâmetros com a função clone() em cada chamada.

Referências

No LeekScript 1, é impossível fazer referência a um número, um booleano ou uma cadeia de caracteres. Será necessário encapsular esses valores em um array ou objeto para reproduzir esse comportamento.

Usando classes e objetos

Palavras-chave reservadas

As palavras-chave new, class, extends, static, public, protegido, privado, implementos, interface, construtor, este , super e instanceof são reservados para OOP e, portanto, não estão mais disponíveis para nomes de variáveis ou funções, portanto, alguns deles terão que ser alterados, se necessário.

Custos nas operações

Devido às novas regras, especialmente a passagem por referência, o LeekScript 2 pode consumir muito menos operações. Se você usou condições no número atual de operações, como if (getOperations() < 15000000) por exemplo, o AI pode se comportar de maneira diferente.

arrayFilter

A função arrayFilter se beneficiou de uma correção: o array resultante é reindexado e, portanto, não é mais associativo com certos valores nulos. Tenha o cuidado de atualizar seus algoritmos se você se encontrar nesse caso.

Operador ^=

O operador ^= muda de significado: ele expressava o poder + operador de atribuição no LeekScript 1 e agora expressa o operador OR binário no LeekScript 2.