> Tutorial
We hebben al verschillende functies en methodes gebruikt (setWeapon, moveToward enz.). Je kunt ook je eigen functies maken, met de volgende syntaxis:
defadd( x, y ): en daarna, eronder en ingesprongen, het blok instructiesHet optionele sleutelwoord return laat de functie een waarde teruggeven. In het vorige voorbeeld krijgt de functie de parameters x en y en geeft ze hun som terug: x + y.
In Python moet een functie gedefinieerd zijn voordat je ze gebruikt. Daarom zetten we onze functies bovenaan het bestand, vóór de hoofdcode.
canFinish(enemy) makenOnze vorige code voor de "genadeklap"-voorwaarde op de vijand is vrij lang en moeilijk te hergebruiken, dus we zetten hem in een functie.
We maken een eigen functie canFinish(enemy), die een vijand krijgt en een boolean teruggeeft die aangeeft of we hem kunnen afmaken of niet.
We kopiëren de code voor de genadeklap in een functie, die er zo uitziet:
Nu kunnen we onze functie canFinish in onze hoofdcode gebruiken, en dat maakt die veel eenvoudiger om te schrijven:
Wist je dat? Code die meerdere keren voorkomt naar een functie verplaatsen, heet factoriseren.
getClosestCellToUseWeapon(enemy) makenMisschien heb je gemerkt dat je voor het Machinegeweer of later de Laser op één lijn met de vijand moet staan.
Je moet dus naar een cel gaan van waaruit je je wapen kunt gebruiken, in plaats van gewoon naar de vijand te bewegen zoals met het Pistool.
Daarvoor geeft de methode me.weaponCells(enemy) alle cellen terug van waaruit je je wapen op een doelwit kunt gebruiken. Daarna moet je er één kiezen: de dichtstbijzijnde!
We maken dus een functie getClosestCellToUseWeapon en gebruiken een for in-lus om de cel te vinden die het dichtst bij ons ligt:
We gebruiken die functie om de verplaatsing te vervangen:
Om het terrein en de cellen beter te zien, kun je tijdens een gevecht de tactische modus gebruiken door op T te drukken.
In de volgende hoofdstukken pakken we moeilijkere onderwerpen aan, dus neem de tijd om te spelen met je functies en de begrippen die we hebben gezien: daarmee kun je al flink stijgen in de ranglijst!
Welke functie geeft correct het kwadraat van een getal terug?
def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x
Welke functie berekent het maximum van een lijst?
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.