> Tutorial
Já usamos várias funções padrão (setWeapon, moveToward, etc.). Também é possível criar suas funções pessoais, com a seguinte sintaxe:
functionsoma( x, y ){ x + y }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.
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.
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:
estimateDamage(weapon, inimigo): calcula o dano que a arma weapon vai infligir em inimigo.getBestWeapon(inimigo): procura entre suas armas aquela que causa mais dano em inimigoVocê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!
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 }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.