Toiminnot

Operaatiot

> LeekScript-opetusohjelma

Kaikki tekoälyssä suoritetut laskelmat vaativat jonkin aikaa palvelimelta suorittaakseen ne. Tämä suoritusaika on arvioitu numerolla: tässä laskelmassa käytettyjen toimintojen määrä.

Tekoäly ei voi käyttää enempää kuin 20 miljoonaa operaatiota yhdessä vuorossa. Onneksi tekoälyn nykyisen käännöksen aikana käyttämien operaatioiden määrä saadaan funktiolla getOperations ja operaatioiden enimmäismäärä vakiolla OPERATIONS_LIMIT.

Tässä on (melkein tyhjentävä) luettelo eri toimintojen kustannuksista, joita tekoälyssä voidaan suorittaa:

koodi | Kustannus -----|------ var a; | 1 var a = arvo; | 1 (+ arvohinta) array[indeksi] = arvo; | 3 (push maksaa 2) kartta[avain] = arvo; | 4

Pääsy

koodi | Kustannus -----|---- a | 0 toiminto(parametrit) | 1 + toimintokulut array[index] | 1 kartta[avain] | 2

Operaattorit

Tietenkin a:n ja b:n kustannukset on lisättävä joka kerta.

koodi | Kustannus -----|----- a = b | 1 a++ | 1 a -- | 1 a+b | 1 a-b | 1 ab | 2 a/b | 5 a \\ b | 5 a % b | 5 a*b | 40 a += b | 1 a-=b | 1 a = b | 2 a /= b | 5 a \\= b | 5 a %= b | 5 a *= b | 40

Vertailuoperaattorit

koodi | Kustannus -----|----- a == b | 1 a != b | 1 a > b | 1 a = b | 1 a > b | 1 a >>> b | 1 a >= b | 1 a <<= b | 1

OOP

koodi | Kustannus -----|----- luokan objekti { ... } | 0 uusi objekti(parametrit) | 1 + kenttien määrä luokassa + rakentajan hinta object.method(params) | 2 + menetelmän hinta esine.omaisuus | 1 (vain jos olemme tämän objektin määrityksen ulkopuolella)

Avainsanat

koodi | Kustannus -----|----- jos(a) | 1 (plus hinta a) ? b: c | 1 (plus kustannukset a, b ja c) while(0) | 0 do {} while(0); | 1