Crea le tue funzioni

Crea le tue funzioni

> Tutorial

Creare una funzione

Abbiamo già utilizzato diverse funzioni standard (setWeapon, moveToward, ecc.). È anche possibile creare le proprie funzioni personali, con la seguente sintassi:

La parola chiave return, facoltativa, serve a far restituire un valore alla funzione. Nell'esempio precedente, la funzione prende i parametri x e y e restituisce la loro somma: x + y.

Creazione di una funzione canFinish(nemico)

Il nostro codice precedente per la condizione di "finish" del nemico è piuttosto lungo e poco riutilizzabile, lo metteremo in una funzione.

Creeremo una funzione personale canFinish(nemico), che prende un nemico e restituisce un booleano che indica se possiamo finirlo o no.

Ricopiamo il codice del finisher in una funzione che si scrive in questo modo:

nota: ricordatevi di specificare di quale arma stiamo parlando affinché il calcolo funzioni. Inoltre, la funzione restituisce vero se avete abbastanza punti turno per sparare abbastanza colpi sul nemico da farlo morire e falso se al contrario sopravvivrà (quindi potete forse fare qualcos'altro).

Ora possiamo utilizzare la nostra funzione canFinish nel nostro codice principale per scriverlo in modo molto più semplice:

Lo sapevate? Spostare più volte lo stesso codice in una funzione si chiama Fattorizzazione.

Creazione di una funzione getClosestCellToUseWeapon(nemico)

Avrete forse visto che per utilizzare l'arma Machine Gun o più tardi il Laser, dovete essere in linea con il nemico.

Bisognerà quindi spostarsi su una cella da cui potrete utilizzare la vostra arma, invece di avanzare semplicemente verso il nemico come con la Pistola.

Per questo, esiste la funzione standard getCellsToUseWeapon, che restituisce tutte le celle possibili per utilizzare un'arma su un bersaglio. Bisognerà quindi sceglierne una: la più vicina!

Creeremo quindi una funzione getClosestCellToUseWeapon e utilizzeremo un ciclo for in per calcolare la cella la cui distanza con noi è la più corta:

La usiamo per sostituire lo spostamento moveToward:

Se vi sentite a vostro agio, potete programmare delle funzioni:

Potete anche:

Per vedere meglio il terreno e le celle, non esitate a utilizzare la modalità tattica premendo T in combattimento.

Nei capitoli successivi affronteremo aspetti più difficili quindi prendetevi il tempo di giocare con le vostre funzioni e le nozioni che abbiamo visto in precedenza, che sono già sufficienti per salire in classifica!

❓ Quizz

Quale funzione che restituisce il quadrato di un numero è corretta?

function quadrato(x) { return x * x } function quadrato(x) { x * x } function quadrato() { return x * x } fonction quadrato(x) { return x * x }

Quale funzione calcola il massimo di una lista?

function massimo(lista) { var max = -99999 for (var e in lista) { if (e > max) { max = e } } return max } function massimo(lista) { var max = 99999 for (var e in lista) { if (e < max) { max = e } } return max } function massimo(lista) { var max = 99999 for (var e in lista) { if (e > max) { max = e } } return max } function massimo(lista) { var max = -99999 for (var e in lista) { if (e < max) { max = e } } return max }

IA completa