> Tutorial
Ya hemos usado varias funciones y métodos (setWeapon, moveToward, etc.). También puedes crear tus propias funciones personalizadas, con la siguiente sintaxis:
defadd( x, y ): y, debajo y con sangría, el bloque de instruccionesLa 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.
En Python, una función debe estar definida antes de usarse. Por eso ponemos nuestras funciones al principio del archivo, antes del código principal.
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 una función personalizada 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 resulta mucho más sencillo de escribir:
¿Sabías que...? Llevar a una función un código que aparece varias veces 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 ir 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. Luego hay que elegir una: ¡la más cercana!
Así que vamos a crear una función getClosestCellToUseWeapon y usar un bucle for in para encontrar la casilla que está a menor distancia de nosotros:
La usamos para sustituir el desplazamiento:
Para ver mejor el terreno y las 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: ¡ya bastan para subir en la clasificación!
¿Qué función devuelve correctamente el cuadrado de un número?
def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x
¿Qué función calcula el máximo de una lista?
def maximum(my_list): maxi = -99999 for e in my_list: if e > maxi: maxi = e return maxi def maximum(my_list): maxi = 99999 for e in my_list: if e < maxi: maxi = e return maxi def maximum(my_list): maxi = 99999 for e in my_list: if e > maxi: maxi = e return maxi def maximum(my_list): maxi = -99999 for e in my_list: if e < maxi: maxi = e return maxi
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.