LeekScript 2

LeekScript 2

LeekScript 2 (tidligere LeekScript 1.1) er den andre versjonen av LeekScript, språket til Leek Wars, utgitt 28. februar 2021. Målet er å rydde opp i språket, foreta korrigeringer og legge til orienterte programmeringsobjekter.

Presentasjon

Siden det gjøres dype modifikasjoner i måten språket fungerer på, er dette en versjon uten bakoverkompatibilitet som aktiveres manuelt av brukeren i editoren.

Versjon 2 er et skritt mot den fremtidige versjonen som ble annonsert i 2016. Mange planlagte funksjoner er derfor til stede i versjon 2, noe som gjør at språket kan utvikles gradvis, og disse funksjonene er svært fordelaktige for koding av kompleks AI.

En dedikert hjelpeside for migrering er tilgjengelig her: LeekScript 1 til 2-migrering.

Nyankomne

Objektorientert programmering

Lagt til objektorientert programmering: klasser og objekter. Se Klasser og objekter-siden for all dokumentasjon om dette tillegget.

Søkeordene ny, klasse, utvider, statisk, offentlig, beskyttet, privat, implementer, grensesnitt, konstruktør, dette , super og instanceof er reservert for OOP og er derfor ikke lenger tilgjengelig for variabel- eller funksjonsnavn.

Pass ved referanse

Ikke-primitive verdier, dvs. matriser og objekter sendes som referanse som standard. Primitive verdier (tall, boolsk, streng) kopieres alltid.

@-syntaksen brukes ikke lenger og er derfor avviklet overalt. Det er ikke mulig i LeekScript 2 å lage referanser til en primitiv verdi.

Referanser i tabeller

Evne til å legge til referanser i arrays (og objekter), slik at du kan lage komplekse og/eller rekursive strukturer til en rimelig pris.

Eksempler på datastrukturer som er vanskelige å oppnå i 1 og veldig enkle i 2:

clone() funksjon

La til en "klone(verdi, [nivå])"-funksjon for å klone en verdi nøyaktig:

Flere feil

Flere semantiske feil returnerte i editoren i stedet for bare én (også tilgjengelig i LS 1).

![](/image/encyclopedia/multiple_errors_2.png)

![](/image/encyclopedia/multiple_errors_1.png)

Full anropsstabel

Hele anropsstakken vises under hver feil, i stedet for bare én linje før (også tilgjengelig i LS 1).

![](/image/encyclopedia/stacktrace.png)

Semikolon er ikke nødvendig

Men det er alltid mulig å bruke det selvfølgelig. (også tilgjengelig i LS 1)

RAM-størrelsesgrensen fjernet

Array-størrelsesgrensen fjernes, og kostnadene ved operasjoner er tilstrekkelige til å begrense bruken.

Rettelser

arrayFilter

Fixed arrayFilter: array er korrekt reindeksert uten å etterlate nullverdier.

Kjede "\\\\"

Rettet escape-strengen "\\" som viser en enkelt \ riktig i stedet for to.

Globals erklæring

Fiks på globale erklæringer på tvers av flere filer.

Operatør ^=

Fikset ^=-operatoren som ble den binære OR i stedet for potensen.

Shuffle-funksjon

Shuffle-funksjonen tar hensyn til tilfeldig tallgeneratoren som er koblet til kampfrøet og er derfor deterministisk for samme frø. Det kan forårsake variasjoner mellom to kamper generert fra samme frø, noe som påvirker testene.