Luo omat funktiosi (JavaScript)

Luo omat funktiosi

> Opas

Funktion luominen

Olemme jo käyttäneet useita funktioita ja metodeja (setWeapon, moveToward jne.). Voit myös luoda omia funktioita seuraavalla syntaksilla:

Valinnainen avainsana return saa funktion palauttamaan arvon. Edellisessä esimerkissä funktio ottaa parametrit x ja y ja palauttaa niiden summan: x + y.

Funktion canFinish(enemy) luominen

Aiempi koodimme vihollisen viimeistelyehdolle on melko pitkä ja hankala käyttää uudelleen, joten siirrämme sen funktioon.

Luomme oman funktion canFinish(enemy), joka ottaa vihollisen ja palauttaa totuusarvon, joka kertoo, pystymmekö viimeistelemään sen vai emme.

Kopioimme viimeistelykoodin funktioon, joka kirjoitetaan näin:

Nyt voimme käyttää canFinish-funktiotamme pääkoodissa, mikä yksinkertaistaa sitä huomattavasti:

Tiesitkö? Kun useassa kohdassa toistuva koodi siirretään yhteen funktioon, sitä kutsutaan refaktoroinniksi.

Funktion getClosestCellToUseWeapon(enemy) luominen

Olet ehkä huomannut, että Konekivääriä tai myöhemmin Laseria käyttääksesi sinun täytyy olla samassa linjassa vihollisen kanssa.

Sinun on siis siirryttävä ruutuun, josta voit käyttää asettasi, sen sijaan että vain liikkuisit vihollista kohti kuten Pistoolin kanssa.

Tähän tarkoitukseen metodi me.weaponCells(enemy) palauttaa kaikki ruudut, joista voit käyttää asettasi kohteeseen. Meidän täytyy valita niistä yksi: lähin!

Luomme siis funktion getClosestCellToUseWeapon ja etsimme for of -silmukalla ruudun, joka on lyhimmän matkan päässä meistä:

Käytämme sitä liikkumisen sijaan:

Saat paremman kuvan maastosta ja sen ruuduista käyttämällä taktista tilaa: paina taistelun aikana T.

Seuraavissa luvuissa käsittelemme vaikeampia aiheita, joten käytä aikaa funktioidesi ja tähän mennessä käsiteltyjen asioiden kokeiluun: niillä pääset jo nousemaan sijoituksissa!

❓ Tietovisa

Mikä näistä funktioista palauttaa oikein luvun neliön?

function square(x) { return x * x } function square(x) { x * x } function square() { return x * x } fonction square(x) { return x * x }

Mikä funktio laskee listan suurimman arvon?

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 }

Koko tekoäly