Lag dine funksjoner

Lag dine funksjoner

> Tutorial

Lag en funksjon

Vi har allerede brukt flere standardfunksjoner (setWeapon, moveToward osv.). Det er også mulig å lage sine egne funksjoner, med følgende syntaks:

Nøkkelordet return, som er valgfritt, brukes til å få funksjonen til å returnere en verdi. I forrige eksempel tar funksjonen parametrene x og y og returnerer deres sum: x + y.

Oppretting av en funksjon canFinish(enemy)

Vår tidligere kode for "finish"-betingelsen mot fienden er ganske stor og lite gjenbrukbar, så vi legger den i en funksjon.

Vi skal lage en personlig funksjon canFinish(fiende), som tar en fiende og returnerer en boolean som angir om vi kan avslutte ham eller ikke.

Vi kopierer finisher-koden inn i en funksjon som skrives slik:

nota: husk å spesifisere hvilket våpen det handler om for at beregningen skal fungere. Funksjonen returnerer også true hvis du har nok turpoeng til å skyte nok skudd på fienden til at han dør, og false hvis han tvert imot overlever (så da kan du kanskje gjøre noe annet).

Nå kan vi bruke funksjonen vår canFinish i hovedkoden vår for å skrive den mye enklere:

Visste du det? Å flytte den samme koden flere ganger inn i en funksjon kalles en Faktorisering.

Oppretting av en funksjon getClosestCellToUseWeapon(enemy)

Du har kanskje sett at for å bruke våpenet Machine Gun eller senere Laser, må du være på linje med fienden.

Du må derfor gå til en celle hvorfra du kan bruke våpenet ditt, i stedet for bare å gå mot fienden som med Pistolet.

Til dette finnes standardfunksjonen getCellsToUseWeapon, som returnerer alle mulige celler for å bruke et våpen mot et mål. Vi må altså velge én: den nærmeste!

Vi skal altså lage en funksjon getClosestCellToUseWeapon og bruke en for in-løkke for å beregne den cellen som har kortest avstand til oss:

Vi bruker den til å erstatte forflytningen moveToward:

Hvis du føler deg komfortabel, kan du kode funksjoner:

Du kan også:

For bedre å se terrenget og cellene, ikke nøl med å bruke taktisk modus ved å trykke T i kamp.

I de følgende kapitlene skal vi ta opp vanskeligere aspekter, så ta deg tid til å leke med funksjonene dine og konseptene vi har sett tidligere, som allerede er tilstrekkelige for å stige på rangeringen!

❓ Quiz

Hvilken funksjon som returnerer kvadratet av et tall 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 funksjon beregner maksimum av 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 }

Komplett AI