Operações

Operações

> Tutorial LeekScript

Todos os cálculos realizados em uma IA requerem algum tempo para serem executados pelo servidor. Esse tempo de execução é estimado por um número: o número de operações usadas por esse cálculo.

Uma IA não pode usar mais de 20 milhões de operações em um turno. Felizmente, o número de operações usadas durante o turno atual por um AI pode ser obtido com a função getOperations, e o número máximo de operações com a constante OPERATIONS_LIMIT.

Aqui está uma lista (quase exaustiva) dos custos das diferentes ações que podem ser realizadas em uma IA:

código | Custo -----|------ var a; | 1 var a = valor; | 1 (+ custo de valor) matriz[índice] = valor; | 3 (push custa 2) mapa[chave] = valor; | 4

Acesso

código | Custo -----|---- um | 0 função(parâmetros) | 1 + custo da função matriz[índice] | 1 mapa[tecla] | 2

Operadores

Obviamente, o custo de a e b deve ser adicionado a cada vez.

código | Custo -----|----- a = b | 1 a++ | 1 um -- | 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

Operadores de Comparação

código | Custo -----|----- 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

código | Custo -----|----- objeto de classe { ... } | 0 novo objeto(parâmetros) | 1 + número de campos na classe + custo do construtor object.method(params) | 2 + custo do método objeto.propriedade | 1 (somente se estivermos fora da declaração deste objeto)

Palavras-chave

código | Custo -----|----- se(a) | 1 (mais custo de a) Para ? b: c | 1 (mais o custo de a, b e c) enquanto(0) | 0 faça {} while(0); | 1