Crie suas funções

Crie suas funções

> Tutorial

Criar uma função

Já usamos várias funções padrão (setWeapon, moveToward, etc.). Também é possível criar suas funções pessoais, com a seguinte sintaxe:

A palavra-chave return, opcional, serve para fazer a função retornar um valor. No exemplo anterior, a função recebe os parâmetros x e y e retorna sua soma: x + y.

Criação de uma função canFinish(inimigo)

Nosso código anterior para a condição de "finish" do inimigo é bastante longo e pouco reutilizável, vamos colocá-lo em uma função.

Vamos criar uma função pessoal canFinish(inimigo), que recebe um inimigo e retorna um booleano indicando se podemos finalizá-lo ou não.

Copiamos o código do finisher em uma função que se escreve desta forma:

nota: lembrem-se de especificar de qual arma estamos falando para que o cálculo funcione. Além disso, a função retorna verdadeiro se vocês têm pontos de turno suficientes para atirar tiros suficientes no inimigo para que ele morra e falso se ao contrário ele vai sobreviver (então talvez vocês possam fazer outra coisa).

Agora, podemos usar nossa função canFinish em nosso código principal para escrevê-lo de forma muito mais simples:

Vocês sabiam? Mover várias vezes o mesmo código para uma função se chama Fatoração.

Criação de uma função getClosestCellToUseWeapon(inimigo)

Vocês talvez tenham visto que para usar a arma Machine Gun ou mais tarde o Laser, vocês devem estar em linha com o inimigo.

Será necessário então ir a uma célula a partir da qual vocês possam usar sua arma, em vez de simplesmente avançar em direção ao inimigo como com a Pistola.

Para isso, existe a função padrão getCellsToUseWeapon, que retorna todas as células possíveis para usar uma arma sobre um alvo. Será preciso então escolher uma: a mais próxima!

Vamos então criar uma função getClosestCellToUseWeapon e usar um loop for in para calcular a célula cuja distância em relação a nós é a mais curta:

Usamos ela para substituir o deslocamento moveToward:

Se vocês se sentirem à vontade, podem programar funções:

Vocês também podem:

Para ver melhor o terreno e as células, não hesitem em usar o modo tático pressionando T em combate.

Nos próximos capítulos vamos abordar aspectos mais difíceis então levem o tempo necessário para brincar com suas funções e as noções que vimos anteriormente, que já são suficientes para subir no ranking!

❓ Quizz

Qual função que retorna o quadrado de um número está correta?

function quadrado(x) { return x * x } function quadrado(x) { x * x } function quadrado() { return x * x } fonction quadrado(x) { return x * x }

Qual função calcula o máximo de uma lista?

function maximo(lista) { var max = -99999 for (var e in lista) { if (e > max) { max = e } } return max } function maximo(lista) { var max = 99999 for (var e in lista) { if (e < max) { max = e } } return max } function maximo(lista) { var max = 99999 for (var e in lista) { if (e > max) { max = e } } return max } function maximo(lista) { var max = -99999 for (var e in lista) { if (e < max) { max = e } } return max }

IA completa