Operazioni

Operazioni

> Tutorial LeekScript

Tutti i calcoli eseguiti in un AI richiedono del tempo per essere eseguiti dal server. Questo tempo di esecuzione è stimato da un numero: il numero di operazioni utilizzate da questo calcolo.

Un'intelligenza artificiale non può utilizzare più di 20 milioni di operazioni in un turno. Fortunatamente, il numero di operazioni utilizzate durante il turno corrente da un'IA può essere ottenuto con la funzione getOperations, e il numero massimo di operazioni con la costante OPERATIONS_LIMIT.

Ecco un elenco (quasi esaustivo) dei costi delle diverse azioni che possono essere eseguite in una IA:

codice | Costo -----|------ var a; | 1 var a = valore; | 1 (+ costo del valore) matrice[indice] = valore; | 3 (push costa 2) mappa[chiave] = valore; | 4

Accesso

codice | Costo -----|---- un | 0 funzione(parametri) | 1 + costo della funzione matrice[indice] | 1 mappa[chiave] | 2

Operatori

Naturalmente, il costo di aeb deve essere aggiunto ogni volta.

codice | Costo -----|----- a = b | 1 a++ | 1 un -- | 1 a+b | 1 a-b | 1 a*b | 2 a/b | 5 a \\ b | 5 a % b | 5 ab | 40 un += b | 1 a-=b | 1 un *= b | 2 un /= b | 5 a \\= b | 5 a %= b | 5 a= b | 40

Operatori di confronto

codice | Costo -----|----- un == b | 1 un != b | 1 a > b | 1 un = b | 1 un > b | 1 a >>> b | 1 a >= b | 1 a <<= b | 1

OOP

codice | Costo -----|----- oggetto di classe { ... } | 0 nuovo oggetto(parametri) | 1 + numero di campi nella classe + costo del costruttore oggetto.metodo(parametri) | 2 + costo del metodo oggetto.proprietà | 1 (solo se siamo fuori dalla dichiarazione di questo oggetto)

Parole chiave

codice | Costo -----|----- se(a) | 1 (più il costo di a) A ? b: c | 1 (più il costo di a, b e c) mentre(0) | 0 fare {} while(0); | 1