> Tutorial
Ya hemos usado varias funciones y métodos (setWeapon, moveToward, etc.). También puedes crear tus propias funciones, con la siguiente sintaxis:
functionsum( x, y ){ return x + y }La palabra clave opcional return hace que la función devuelva un valor. En el ejemplo anterior, la función recibe los parámetros x e y y devuelve su suma: x + y.
canFinish(enemy)Nuestro código anterior para la condición de «remate» del enemigo es bastante largo y difícil de reutilizar, así que vamos a meterlo en una función.
Vamos a crear nuestra propia función, canFinish(enemy), que recibe un enemigo y devuelve un booleano que indica si podemos rematarlo o no.
Copiamos el código de remate en una función, escrita así:
Ahora podemos usar nuestra función canFinish en el código principal, que queda mucho más sencillo:
¿Sabías que...? Llevar a una sola función un código que se repite en varios sitios se llama factorizar.
getClosestCellToUseWeapon(enemy)Quizá te hayas dado cuenta de que para usar la Ametralladora o, más adelante, el Láser, tienes que estar en línea con el enemigo.
Así que tendrás que moverte a una casilla desde la que puedas usar tu arma, en lugar de simplemente avanzar hacia el enemigo como con la Pistola.
Para ello, el método me.weaponCells(enemy) devuelve todas las casillas desde las que puedes usar tu arma contra un objetivo. Tendremos que elegir una de ellas: ¡la más cercana!
Así que vamos a crear una función getClosestCellToUseWeapon y usar un bucle for of para encontrar la casilla que está a menor distancia de nosotros:
La usamos para sustituir el desplazamiento:
Para ver mejor el terreno y sus casillas, no dudes en usar el modo táctico pulsando T durante un combate.
En los próximos capítulos abordaremos temas más difíciles, así que tómate tu tiempo para experimentar con tus funciones y con los conceptos que hemos visto hasta ahora: ¡ya bastan para subir en la clasificación!
¿Cuál de estas funciones devuelve correctamente el cuadrado de un número?
function square(x) { return x * x } function square(x) { x * x } function square() { return x * x } fonction square(x) { return x * x }
¿Qué función calcula el máximo de una 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 }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.