LeekScript 2 (dawniej LeekScript 1.1) to druga wersja LeekScript, języka Leek Wars, wydana 28 lutego 2021 r. Ma na celu oczyszczenie języka, wprowadzenie poprawek i dodanie zorientowanego obiektu programowania.
Ponieważ w sposobie działania języka wprowadzane są głębokie modyfikacje, jest to wersja bez wstecznej kompatybilności, którą użytkownik aktywuje ręcznie w edytorze.
Wersja 2 jest krokiem w kierunku przyszłej wersji ogłoszonej w 2016 roku. W związku z tym w wersji 2 dostępnych jest wiele planowanych funkcji, co pozwala na stopniowe rozwijanie języka, co jest bardzo korzystne dla kodowania złożonej sztucznej inteligencji.
Dedykowana strona pomocy dotycząca migracji jest dostępna tutaj: LeekScript 1 to 2 Migration.
Dodano programowanie obiektowe: klasy i obiekty. Zobacz stronę Klasy i obiekty, aby zapoznać się z całą dokumentacją tego dodatku.
Słowa kluczowe nowy, klasa, rozszerzenia, statyczny, publiczny, chronione, prywatne, implementy, interfejs, konstruktor, to , super i instanceof są zarezerwowane dla OOP i dlatego nie są już dostępne dla nazw zmiennych lub funkcji.
Wartości inne niż prymitywne, tj. tablice i obiekty, są domyślnie przekazywane przez referencję. Wartości pierwotne (liczba, wartość logiczna, łańcuch) są zawsze kopiowane.
Składnia @ nie jest już używana i dlatego wszędzie jest przestarzała. W LeekScript 2 nie jest możliwe tworzenie odniesień do wartości pierwotnej.
Możliwość dodawania referencji w tablicach (i obiektach), pozwalająca na tworzenie złożonych i/lub rekurencyjnych struktur przy rozsądnych kosztach.
Przykłady struktur danych trudnych do uzyskania w 1 i bardzo łatwych w 2:
Dodano funkcję clone(value, [level]), aby dokładnie sklonować wartość:
Kilka błędów semantycznych zwróciło edytor zamiast jednego (dostępne również w LS 1).


Pełny stos wywołań jest wyświetlany pod każdym błędem, zamiast tylko jednej linii wcześniej (dostępne również w LS 1).

Ale oczywiście zawsze można z niego skorzystać. (dostępne również w wersji LS 1)
Limit rozmiaru macierzy został usunięty, a koszt operacji jest wystarczający, aby ograniczyć ich użycie.
Naprawiono arrayFilter: tablica jest poprawnie ponownie indeksowana bez pozostawiania wartości pustych.
Naprawiono zmianę znaczenia ciągu "\\", który poprawnie wyświetla pojedynczy \ zamiast dwóch.
Napraw globalne deklaracje w wielu plikach.
Naprawiono operator ^= zamieniający się w binarne OR zamiast potęgi.
Funkcja tasowania bierze pod uwagę generator liczb losowych podłączony do ziarna bojowego i dlatego jest deterministyczna dla tego samego ziarna. Może to powodować różnice między dwiema walkami wygenerowanymi z tego samego materiału siewnego, co wpływa na testy.
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.