> Tutorial
Abbiamo già usato diverse funzioni e metodi (setWeapon, moveToward, ecc.). Puoi anche creare le tue funzioni personalizzate, con la seguente sintassi:
defadd( x, y ): poi, sotto e indentato, il blocco di istruzioniLa parola chiave facoltativa return fa restituire un valore alla funzione. Nell'esempio precedente, la funzione riceve i parametri x e y e restituisce la loro somma: x + y.
In Python, una funzione deve essere definita prima di essere usata. Mettiamo quindi le nostre funzioni all'inizio del file, prima del codice principale.
canFinish(enemy)Il nostro codice precedente per la condizione di "colpo di grazia" sul nemico è piuttosto lungo e difficile da riutilizzare, quindi lo metteremo in una funzione.
Creeremo una funzione personalizzata canFinish(enemy), che riceve un nemico e restituisce un booleano che indica se possiamo finirlo oppure no.
Copiamo il codice del colpo di grazia in una funzione, scritta così:
Ora possiamo usare la nostra funzione canFinish nel codice principale, che diventa molto più semplice da scrivere:
Lo sapevi? Spostare in una funzione del codice che compare più volte si chiama fattorizzazione.
getClosestCellToUseWeapon(enemy)Avrai notato che per usare la Mitragliatrice o, più avanti, il Laser, devi essere in linea con il nemico.
Dovrai quindi andare su una casella da cui puoi usare la tua arma, invece di avvicinarti semplicemente al nemico come con la Pistola.
Per questo, il metodo me.weaponCells(enemy) restituisce tutte le caselle da cui puoi usare la tua arma su un bersaglio. Poi devi sceglierne una: la più vicina!
Creeremo quindi una funzione getClosestCellToUseWeapon e useremo un ciclo for in per trovare la casella più vicina a noi:
La usiamo al posto dello spostamento:
Per vedere meglio il terreno e le caselle, non esitare a usare la modalità tattica premendo T durante un combattimento.
Nei prossimi capitoli affronteremo argomenti più difficili, quindi prenditi il tempo di sperimentare con le tue funzioni e con i concetti visti finora: bastano già per scalare la classifica!
Quale funzione restituisce correttamente il quadrato di un numero?
def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x
Quale funzione calcola il massimo di 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.