> LeekScript
In un programma, la cosa più importante è strutturare bene il suo codice. Pour cela vous avez appris l'utilisation des commentaires et c'est à peu près tout... Mais on va vite changer cela avec les fonctions, une des notions les plus importantes en programmation et vous allez vite comprendere. Li hai già incontrati e persino usati nel capitolo sulle Funzioni native.
Una funzione è una sequenza di istruzioni, niente di più. Quindi niente più duplicazioni di codice, basta chiamare la funzione che eseguirà queste istruzioni. Per rendere le funzioni più versatili, puoi dare loro parametri come il porro che vuoi colpire, il numero di MP rimanenti per questo turno, ecc. Inoltre la funzione può restituire un valore come un array con tutte le caselle accessibili dal nostro porro. Ecco il prototipo, cioè la firma, di una funzione:
NomDeLaFunction ( parametro1, parametro2, ..., parametroN ): ritorno
Il prototipo è la descrizione della funzione: il suo nome, il suo ritorno se ce n'è uno ei suoi parametri anch'essi opzionali. La definizione di una funzione è l'insieme delle istruzioni presenti in essa. Tutti i prototipi delle funzioni native sono accessibili nella documentazione. A sinistra, nell'elenco delle funzioni ordinate per tema, se selezioniamo "UseWeapon" nella categoria Armi, troviamo questo: !UseWeapon-Mod
Quando si chiama una funzione, il programma 'principale' fa una pausa per eseguire il programma memorizzato nella funzione. Quindi, al termine di questa funzione, il programma "principale" riprende da dove era stato interrotto.
Parliamo anche di dichiarazione per funzioni. Infatti la LS offre funzioni native pronte all'uso come "getNearestEnemy / useWeapon / ...". Ma è possibile crearne uno tu stesso. Ecco la sintassi da adottare:
function NomeFunzione (parametro1, parametro2, ..., parametroN) { /* Le istruzioni */ }
Non è possibile fare tutto in una funzione: la dichiarazione di una nuova funzione così come la dichiarazione di una variabile globale sono vietate!
Per essere più precisi, creeremo una funzione molto semplice, il cui scopo sarà avvicinarsi al centro della mappa, lanciare un chip scudo e un chip curativo. Ecco il suo prototipo: (Nota che il prototipo non deve essere inserito nel codice, se non in un commento per spiegare la tua funzione)
ArmaturaECura()
Niente di più semplice infatti, la nostra funzione non prende nessun parametro e non restituisce niente!
Manca ancora una definizione qui:
funzione ArmaturaECura(){ spostaVersoCella(306); useChip(CHIP_ARMOR, getEntity()); useChip(CHIP_CURE, getEntity()); }
Per chiamare la funzione, è come le altre:
ArmaturaECura(); // Avvicinati al centro della mappa, quindi avvia ARMOR e CURE
Nota importante, una funzione non può accedere a variabili esterne tranne quelle globali. Devi immaginare che quando chiami la funzione, "vive" nel suo mondo e che l'unica cosa a cui ha accesso sono variabili globali e altre funzioni.
Per illustrare il sistema di parametri e funzioni restituite, prenderemo questo esempio:
// Prototipo: getCellDistanceTo(porro): (Numero) Distanza tra il mio porro e quello nel parametro function getCellDistanceTo(porro){ return getCellDistance(getCell(), getCell(porro)); }
Secondo il prototipo, la funzione prende un porro come parametro (il suo ID) e restituisce la distanza tra esso e il proprio porro. L'elenco dei parametri è (quasi) infinito, basta separare ogni parametro con una virgola. Il ritorno della funzione avviene con la parola chiave 'return'. In questo esempio la funzione 'getCellDistance' restituisce un numero che restituiamo direttamente. Quando la funzione incontra un 'ritorno', si ferma e riprende nel punto della chiamata di funzione. Per chi è interessato, il principio di riduzione del numero di parametri di una funzione è chiamato 'curr
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.