> Opplæring
Vi har allerede brukt flere funksjoner og metoder (setWeapon, moveToward osv.). Du kan også lage dine egne funksjoner, med denne syntaksen:
functionsum( x, y ){ return x + y }Det valgfrie nøkkelordet return får funksjonen til å returnere en verdi. I eksempelet ovenfor tar funksjonen parameterne x og y og returnerer summen av dem: x + y.
canFinish(enemy)Den forrige koden vår for «nådestøt»-betingelsen er ganske lang og vanskelig å gjenbruke, så vi legger den i en funksjon.
Vi lager vår egen funksjon, canFinish(enemy), som tar en fiende og returnerer en boolsk verdi som sier om vi kan gjøre det av med den eller ikke.
Vi kopierer nådestøt-koden inn i en funksjon, som skrives slik:
Nå kan vi bruke funksjonen canFinish i hovedkoden vår, som blir mye enklere:
Visste du det? Å flytte kode som gjentas flere steder, inn i én enkelt funksjon kalles faktorisering.
getClosestCellToUseWeapon(enemy)Du har kanskje lagt merke til at for å bruke maskingeværet eller, senere, laseren må du stå på linje med fienden.
Da må du flytte deg til en celle der du kan bruke våpenet, i stedet for bare å gå mot fienden slik som med pistolen.
Til dette returnerer metoden me.weaponCells(enemy) alle cellene der du kan bruke våpenet ditt på et mål. Vi må velge én av dem: den nærmeste!
Så vi lager en funksjon getClosestCellToUseWeapon og bruker en for of-løkke for å finne cellen som ligger nærmest oss:
Vi bruker den i stedet for den gamle forflytningen:
For å få bedre oversikt over terrenget og cellene kan du gjerne bruke taktisk modus ved å trykke på T under en kamp.
I de neste kapitlene tar vi for oss vanskeligere emner, så ta deg tid til å leke med funksjonene dine og begrepene vi har sett så langt: de holder allerede for å klatre på rangeringen!
Hvilken av disse funksjonene returnerer kvadratet av et tall riktig?
function square(x) { return x * x } function square(x) { x * x } function square() { return x * x } fonction square(x) { return x * x }
Hvilken funksjon beregner maksimum av en liste?
function maximum(list) { let maxi = -99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = -99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.