> Tutorial
Vi har allerede brugt flere funktioner og metoder (setWeapon, moveToward osv.). Du kan også oprette dine egne brugerdefinerede funktioner med følgende syntaks:
defadd( x, y ): og derefter, nedenunder og indrykket, blokken af instruktionerDet valgfrie nøgleord return får funktionen til at returnere en værdi. I det forrige eksempel tager funktionen parametrene x og y og returnerer deres sum: x + y.
I Python skal en funktion være defineret, før den bruges. Derfor placerer vi vores funktioner øverst i filen, før hovedkoden.
canFinish(enemy)Vores tidligere kode til "dræberslag"-betingelsen på fjenden er temmelig lang og svær at genbruge, så vi lægger den i en funktion.
Vi opretter en brugerdefineret funktion canFinish(enemy), som tager en fjende og returnerer en boolean, der fortæller, om vi kan gøre det af med den eller ej.
Vi kopierer dræberslag-koden ind i en funktion, som skrives sådan her:
Nu kan vi bruge vores funktion canFinish i vores hovedkode, som bliver meget enklere at skrive:
Vidste du det? At samle kode, der optræder flere gange, i en funktion kaldes faktorisering.
getClosestCellToUseWeapon(enemy)Du har måske bemærket, at for at bruge Maskinpistol eller senere Laser skal du stå på linje med fjenden.
Du skal altså gå hen til en celle, hvorfra du kan bruge dit våben, i stedet for bare at gå hen mod fjenden som med Pistol.
Til det returnerer metoden me.weaponCells(enemy) alle de celler, hvorfra du kan bruge dit våben på et mål. Derefter skal du vælge én: den nærmeste!
Vi opretter derfor en funktion getClosestCellToUseWeapon og bruger en for in-løkke til at finde den celle, der ligger tættest på os:
Vi bruger den i stedet for den gamle bevægelse:
For at få et bedre overblik over terrænet og cellerne kan du bruge den taktiske visning ved at trykke på T under en kamp.
I de næste kapitler tager vi fat på sværere emner, så tag dig tid til at lege med dine funktioner og de begreber, vi har gennemgået: de er allerede nok til at klatre op ad ranglisten!
Hvilken funktion returnerer korrekt kvadratet af et tal?
def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x
Hvilken funktion beregner maksimum af 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.