Lag dine funksjoner (JavaScript)

Lag dine funksjoner

> Opplæring

Lage en funksjon

Vi har allerede brukt flere funksjoner og metoder (setWeapon, moveToward osv.). Du kan også lage dine egne funksjoner, med denne syntaksen:

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.

Lage en funksjon 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.

Lage en funksjon 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!

❓ Quiz

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 }

Fullstendig AI