Operaciones

Operaciones

> Tutorial de LeekScript

Todos los cálculos realizados en una IA requieren algún tiempo para ser ejecutados por el servidor. Este tiempo de ejecución se estima mediante un número: el número de operaciones utilizadas por este cálculo.

Una IA no puede usar más de 20 millones de operaciones en un turno. Afortunadamente, el número de operaciones utilizadas durante el turno actual por una IA se puede obtener con la función getOperations, y el número máximo de operaciones con la constante OPERATIONS_LIMIT.

Aquí hay una lista (casi exhaustiva) de los costos de las diferentes acciones que se pueden realizar en una IA:

código | Costo -----|------ var a; | 1 var a = valor; | 1 (+ valor costo) matriz[índice] = valor; | 3 (empujar cuesta 2) mapa[clave] = valor; | 4

Acceso

código | Costo -----|---- un | 0 función(parámetros) | 1 + coste de función matriz[índice] | 1 mapa[clave] | 2

Operadores

Por supuesto, debe agregar el costo de a y b cada vez.

código | Costo -----|----- un = segundo | 1 un ++ | 1 un -- | 1 a+b | 1 a-b | 1 ab | 2 un/b | 5 un \\ segundo | 5 un % b | 5 a*b | 40 un += segundo | 1 a-=b | 1 un * = segundo | 2 un /= segundo | 5 un \\= segundo | 5 un %= segundo | 5 un **= segundo | 40

Operadores de comparación

código | Costo -----|----- un == segundo | 1 un != segundo | 1 a > b | 1 un = segundo | 1 un > segundo | 1 un >>> segundo | 1 un >= segundo | 1 un <<= segundo | 1

Programación orientada a objetos

código | Costo -----|----- objeto de clase { ... } | 0 nuevo objeto (parámetros) | 1 + número de campos en la clase + coste del constructor objeto.método(parámetros) | 2 + costo del método objeto.propiedad | 1 (solo si estamos fuera de la declaración de este objeto)

Palabras clave

código | Costo -----|----- si (a) | 1 (Más costo de a) posee ? segundo: c | 1 (Más costo de a, b y c) mientras(0) | 0 hacer {} mientras (0); | 1