Crie suas funções (JavaScript)

Crie suas funções

> Tutorial

Criar uma função

Já usamos várias funções e métodos (setWeapon, moveToward etc.). Você também pode criar suas próprias funções, com a seguinte sintaxe:

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

Criar uma função canFinish(enemy)

Nosso código anterior para a condição de "finalização" do inimigo é bem longo e difícil de reutilizar, então vamos colocá-lo em uma função.

Vamos criar nossa própria função, canFinish(enemy), que recebe um inimigo e retorna um booleano dizendo se conseguimos finalizá-lo ou não.

Copiamos o código de finalização para dentro de uma função, assim:

Agora podemos usar nossa função canFinish no código principal, que fica bem mais simples:

Você sabia? Mover um código repetido em vários lugares para uma única função se chama fatoração.

Criar uma função getClosestCellToUseWeapon(enemy)

Você deve ter notado que, para usar a Metralhadora ou, mais adiante, o Laser, é preciso estar alinhado com o inimigo.

Então você vai ter que se mover até uma célula de onde possa usar sua arma, em vez de simplesmente avançar em direção ao inimigo como com a Pistola.

Para isso, o método me.weaponCells(enemy) retorna todas as células de onde você pode usar sua arma em um alvo. Vamos ter que escolher uma delas: a mais próxima!

Então vamos criar uma função getClosestCellToUseWeapon e usar um loop for of para encontrar a célula que está à menor distância de nós:

Usamos essa função para substituir o movimento:

Para ver melhor o terreno e as células, fique à vontade para usar o modo tático apertando T durante um combate.

Nos próximos capítulos, vamos abordar assuntos mais difíceis, então reserve um tempo para brincar com suas funções e com os conceitos que vimos até aqui: eles já bastam para subir no ranking!

❓ Quiz

Qual destas funções retorna corretamente o quadrado de um número?

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

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

function maximum(list) { let maxi = -99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = -99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi }

IA completa