LeekScript 2 (tidigare LeekScript 1.1) är den andra versionen av LeekScript, språket för Leek Wars, släppt den 28 februari 2021. Syftet är att rensa upp språket, göra korrigeringar och lägga till orienterade programmeringsobjekt.
Eftersom djupa modifieringar görs i hur språket fungerar är detta en version utan bakåtkompatibilitet som aktiveras manuellt av användaren i editorn.
Version 2 är ett steg mot den framtida version som tillkännagavs 2016. Många planerade funktioner finns därför i version 2, vilket gör att språket kan avanceras gradvis, dessa funktioner är mycket fördelaktiga för kodning av komplex AI.
En dedikerad hjälpsida för migrering finns tillgänglig här: LeekScript 1 till 2 Migration.
Tillagd objektorienterad programmering: klasser och objekt. Se sidan Klasser och objekt för all dokumentation om detta tillägg.
Sökorden ny, klass, extends, static, public, skyddad, privat, implementer, gränssnitt, konstruktör, detta , super och instanceof är reserverade för OOP och är därför inte längre tillgängliga för variabel- eller funktionsnamn.
Icke-primitiva värden, dvs arrayer och objekt skickas som referens som standard. Primitiva värden (nummer, boolean, sträng) kopieras alltid.
@-syntaxen används inte längre och är därför utfasad överallt. Det är inte möjligt i LeekScript 2 att skapa referenser till ett primitivt värde.
Möjlighet att lägga till referenser i arrayer (och objekt), vilket gör det möjligt att skapa komplexa och/eller rekursiva strukturer till en rimlig kostnad.
Exempel på datastrukturer svåra att uppnå i 1 och mycket lätta i 2:
Lade till en "clone(value, [level])"-funktion för att klona ett värde exakt:
Flera semantiska fel returnerades i editorn istället för bara ett (finns även i LS 1).


Hela samtalsstacken visas under varje fel, istället för bara en rad före (finns även i LS 1).

Men det går naturligtvis alltid att använda det. (finns även i LS 1)
Gränsen för arraystorlek tas bort, kostnaden i operationer är tillräcklig för att begränsa deras användning.
Fixed arrayFilter: arrayen är korrekt omindexerad utan att lämna nollvärden.
Fixat escape-strängen "\\" som korrekt visar en enda \ istället för två.
Fixa på globala deklarationer över flera filer.
Fixat operatorn ^= som blev den binära ELLER istället för makten.
Blandningsfunktionen tar hänsyn till den slumptalsgenerator som är kopplad till stridsfröet och är därför deterministisk för samma frö. Det kan orsaka variationer mellan två slagsmål genererade från samma frö, vilket påverkar testerna.
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.