> Tutorial
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:
defadd( x, y ): e depois, abaixo e indentado, o bloco de instruçõesA 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.
Em Python, uma função precisa ser definida antes de ser usada. Por isso colocamos nossas funções no topo do arquivo, antes do código principal.
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 de escrever:
Você sabia? Mover para uma função um código que aparece várias vezes se chama fatoraçã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 precisar ir 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. Depois é só escolher uma delas: a mais próxima!
Então vamos criar uma função getClosestCellToUseWeapon e usar um loop for in 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: eles já bastam para subir no ranking!
Qual função retorna corretamente o quadrado de um número?
def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x
Qual função calcula o máximo de uma 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.