> Tutorial
Vi har allerede brugt flere standardfunktioner (setWeapon, moveToward osv.). Det er også muligt at oprette sine egne funktioner med følgende syntaks:
functionsum( x, y ){ x + y }Nøgleordet return, som er valgfrit, bruges til at få funktionen til at returnere en værdi. I det forrige eksempel tager funktionen parametrene x og y og returnerer deres sum: x + y.
canFinish(enemy)Vores tidligere kode til "finish"-betingelsen mod fjenden er ret stor og kan ikke nemt genbruges, så vi lægger den i en funktion.
Vi vil oprette en personlig funktion canFinish(fjende), som tager en fjende og returnerer en boolean, der angiver, om vi kan afslutte ham eller ej.
Vi kopierer finisher-koden ind i en funktion, der ser sådan ud:
nota: husk at angive hvilket våben det handler om, så beregningen virker. Funktionen returnerer også true, hvis du har nok turpoint til at affyre nok skud på fjenden til, at han dør, og false hvis han tværtimod overlever (så kan du måske lave noget andet).
Nu kan vi bruge vores funktion canFinish i vores hovedkode for at skrive den meget enklere:
Vidste du det? At flytte den samme kode flere gange ind i en funktion kaldes en Faktorisering.
getClosestCellToUseWeapon(enemy)Du har måske bemærket, at for at bruge våbnet Machine Gun eller senere Laser, skal du være på linje med fjenden.
Du bliver derfor nødt til at gå til en celle, hvorfra du kan bruge dit våben, i stedet for bare at gå mod fjenden som med Pistolet.
Til dette findes der en standardfunktion getCellsToUseWeapon, som returnerer alle de mulige celler til at bruge et våben mod et mål. Vi skal altså vælge en: den nærmeste!
Vi opretter altså en funktion getClosestCellToUseWeapon og bruger en for in-løkke til at beregne den celle, hvis afstand til os er kortest:
Vi bruger den til at erstatte bevægelsen moveToward:
Hvis du føler dig tryg, kan du kode funktioner:
estimateDamage(weapon, enemy): beregner den skade, som våbnet weapon vil påføre enemy.getBestWeapon(enemy): leder blandt dine våben efter det, der gør mest skade på enemy.Du kan også:
For bedre at se terrænet og cellerne, så tøv ikke med at bruge taktisk tilstand ved at trykke på T i kamp.
I de følgende kapitler vil vi tage fat på sværere aspekter, så tag dig tid til at lege med dine funktioner og de begreber, vi har set tidligere, som allerede er tilstrækkelige til at stige i rangeringen!
Hvilken funktion, der returnerer kvadratet af et tal, er korrekt?
function kvadrat(x) { return x * x } function kvadrat(x) { x * x } function kvadrat() { return x * x } fonction kvadrat(x) { return x * x }
Hvilken funktion beregner maksimum af en liste?
function maksimum(liste) { var max = -99999 for (var e in liste) { if (e > max) { max = e } } return max } function maksimum(liste) { var max = 99999 for (var e in liste) { if (e < max) { max = e } } return max } function maksimum(liste) { var max = 99999 for (var e in liste) { if (e > max) { max = e } } return max } function maksimum(liste) { var max = -99999 for (var e in liste) { if (e < max) { max = e } } return max }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.