> Opplæring
Vi har allerede brukt flere funksjoner og metoder (setWeapon, moveToward osv.). Du kan også lage dine egne tilpassede funksjoner, med denne syntaksen:
defadd( x, y ):, og deretter, under og med innrykk, blokken med instruksjonerDet 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.
I Python må en funksjon være definert før den brukes. Derfor legger vi funksjonene øverst i filen, før hovedkoden.
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 en 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 å skrive:
Visste du det? Å flytte kode som forekommer flere ganger, inn i en funksjon kalles faktorisering.
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 gå 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. Så må du velge én av dem: den nærmeste!
Så vi lager en funksjon getClosestCellToUseWeapon og bruker en for in-løkke for å finne cellen med kortest avstand til 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: de holder allerede for å klatre på rangeringen!
Hvilken funksjon returnerer kvadratet av et tall riktig?
def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x
Hvilken funksjon beregner maksimum av en liste?
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.