> Opas
Olemme jo käyttäneet useita funktioita ja metodeja (setWeapon, moveToward jne.). Voit myös luoda omia funktioita seuraavalla syntaksilla:
defadd( x, y ): ja sen jälkeen alemmalla rivillä sisennettynä käskylohkoValinnainen 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.
canFinish(enemy) luominenAiempi 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.
getClosestCellToUseWeapon(enemy) luominenOlet 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!
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
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.