> LeekScript
LeekScript 2 (precedentemente LeekScript 1.1) è la seconda versione di LeekScript, il linguaggio di Leek Wars, rilasciato il 28 febbraio 2021. Ha lo scopo di ripulire il linguaggio, apportare correzioni e aggiungere oggetti di programmazione orientati.
Poiché vengono apportate profonde modifiche al modo in cui funziona il linguaggio, questa è una versione senza retrocompatibilità che viene attivata manualmente dall'utente nell'editor.
La versione 2 è un passo verso la futura versione annunciata nel 2016. Molte funzionalità pianificate sono quindi presenti nella versione 2, consentendo al linguaggio di avanzare gradualmente, queste funzionalità sono molto utili per la codifica di IA complesse.
Una pagina di aiuto dedicata alla migrazione è disponibile qui: LeekScript 1 to 2 Migration.
Aggiunta programmazione orientata agli oggetti: classi e oggetti. Vedi la pagina Classes and Objects per tutta la documentazione su questa aggiunta.
Le parole chiave new, class, extends, static, public, protected, private, implements, interface, constructor, this , super e instanceof sono riservati per OOP e pertanto non sono più disponibili per nomi di variabili o funzioni.
I valori non primitivi, ad esempio array e oggetti, vengono passati per riferimento per impostazione predefinita. I valori primitivi (numero, booleano, stringa) vengono sempre copiati.
La sintassi @ non è più utilizzata ed è quindi deprecata ovunque. Non è possibile in LeekScript 2 creare riferimenti a un valore primitivo.
Possibilità di aggiungere riferimenti in array (e oggetti), permettendo di creare strutture complesse e/o ricorsive a un costo ragionevole.
Esempi di strutture dati difficili da realizzare in 1 e molto facili in 2:
Aggiunta una funzione clone(value, [level]) per clonare precisamente un valore:
Diversi errori semantici restituiti nell'editor invece di uno solo (disponibile anche in LS 1).


Lo stack di chiamate completo viene visualizzato sotto ogni errore, anziché solo una riga prima (disponibile anche in LS 1).

Ma è sempre possibile usarlo ovviamente. (disponibile anche in LS 1)
Il limite della dimensione dell'array viene rimosso, il costo delle operazioni è sufficiente a limitarne l'uso.
Corretto arrayFilter: l'array viene reindicizzato correttamente senza lasciare valori nulli.
Risolto il problema con l'escape della stringa "\\" che visualizza correttamente un singolo \ invece di due.
Correzione delle dichiarazioni globali su più file.
Risolto il problema con l'operatore ^= che diventava l'OR binario invece della potenza.
La funzione shuffle tiene conto del generatore di numeri casuali collegato al seme di combattimento ed è quindi deterministica per il seme stesso. Potrebbe causare variazioni tra due lotte generate dallo stesso seme, il che influisce sui test.
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.