LeekScript 2 (voorheen LeekScript 1.1) is de tweede versie van LeekScript, de taal van Leek Wars, uitgebracht op 28 februari 2021. Het heeft tot doel de taal op te schonen, correcties aan te brengen en georiënteerde programmeerobjecten toe te voegen.
Omdat er diepgaande wijzigingen zijn aangebracht in de manier waarop de taal werkt, is dit een versie zonder achterwaartse compatibiliteit die handmatig door de gebruiker in de editor wordt geactiveerd.
Versie 2 is een stap in de richting van de toekomstige versie die in 2016 is aangekondigd. Veel geplande functies zijn daarom aanwezig in versie 2, waardoor de taal geleidelijk kan worden ontwikkeld, deze functies zijn zeer gunstig voor het coderen van complexe AI.
Een speciale hulppagina voor migratie is hier beschikbaar: LeekScript 1 to 2 Migration.
Objectgeoriënteerd programmeren toegevoegd: klassen en objecten. Zie de pagina Classes and Objects voor alle documentatie over deze toevoeging.
De trefwoorden new, class, extends, static, public, beschermd, privé, implementeert, interface, constructor, dit , super en instanceof zijn gereserveerd voor OOP en zijn daarom niet langer beschikbaar voor variabele- of functienamen.
Niet-primitieve waarden, dwz arrays en objecten worden standaard door middel van referentie doorgegeven. Primitieve waarden (getal, boolean, string) worden altijd gekopieerd.
De syntaxis @ wordt niet meer gebruikt en is daarom overal verouderd. Het is in LeekScript 2 niet mogelijk om verwijzingen naar een primitieve waarde te maken.
Mogelijkheid om referenties toe te voegen in arrays (en objecten), waardoor complexe en/of recursieve structuren kunnen worden gemaakt tegen een redelijke prijs.
Voorbeelden van datastructuren moeilijk te realiseren in 1 en zeer eenvoudig in 2:
Een clone(value, [level]) functie toegevoegd om een waarde precies te klonen:
Verschillende semantische fouten kwamen terug in de editor in plaats van slechts één (ook beschikbaar in LS 1).


De volledige call-stack wordt onder elke fout weergegeven, in plaats van slechts één regel ervoor (ook beschikbaar in LS 1).

Maar het is natuurlijk altijd mogelijk om er gebruik van te maken. (ook verkrijgbaar in LS 1)
De limiet voor de grootte van de array is verwijderd, de kosten van bewerkingen zijn voldoende om het gebruik ervan te beperken.
Vaste arrayFilter: array wordt correct opnieuw geïndexeerd zonder null-waarden achter te laten.
Vaste escape van de tekenreeks "\\" die correct een enkele \ weergeeft in plaats van twee.
Oplossing voor globale declaraties in meerdere bestanden.
Probleem verholpen waarbij de operator '^=' de binaire OR werd in plaats van de macht.
De shuffle-functie houdt rekening met de willekeurige nummergenerator die is verbonden met het gevechtszaad en is daarom deterministisch voor hetzelfde zaad. Het kan variaties veroorzaken tussen twee gevechten die uit hetzelfde zaad worden gegenereerd, wat van invloed is op de tests.
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.