Luo omat funktiosi (Python)

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.

Pythonissa funktio täytyy määritellä ennen kuin sitä käytetään. Siksi sijoitamme funktiomme tiedoston alkuun, ennen pääkoodia.

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, jolloin sen kirjoittaminen on paljon yksinkertaisempaa:

Tiesitkö? Kun useaan kertaan esiintyvä koodi siirretään 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 mentä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. Sinun täytyy sitten valita niistä yksi: lähin!

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

Käytämme sitä liikkumisen sijaan:

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

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

❓ Tietovisa

Mikä funktio palauttaa oikein luvun neliön?

def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x

Mikä funktio laskee listan suurimman arvon?

def maximum(my_list): maxi = -99999 for e in my_list: if e > maxi: maxi = e return maxi def maximum(my_list): maxi = 99999 for e in my_list: if e < maxi: maxi = e return maxi def maximum(my_list): maxi = 99999 for e in my_list: if e > maxi: maxi = e return maxi def maximum(my_list): maxi = -99999 for e in my_list: if e < maxi: maxi = e return maxi

Koko tekoäly