Tavs šīs stundas izaicinājums: Izprast funkciju darbības principus un izveidot atkārtoti lietojamus koda blokus ar parametriem, lai strukturētu un optimizētu savas spēles loģiku.
2.4.15. Veido modulāras programmas un funkcijas.Programmai kļūstot garākai, vienādu koda bloku rakstīšana no jauna ir neefektīva. Functions (Funkcijas) ir kā receptes – tās nodefinē vienreiz, bet izsauc jebkurā brīdī un neierobežotu skaitu reižu.
# Funkcijas definēšana ar parametru
def sasveicinaties(vards):
print(f"Sveiks, {vards}!")
# Funkcijas izsaukšana galvenajā programmā
sasveicinaties("Spēlētāj") # Izvada: Sveiks, Spēlētāj!
Izveido savu pirmo bāzes funkciju bez parametriem un integrē to programmas plūsmā, izmantojot ciklu.
funkcijas_pamati.py.def sveiciens():.print("Sveiks, ceļotāj! Tavs piedzīvojums sākas.").sveiciens() un palaid failu.for vai while ciklu, lai izsauktu šo funkciju trīs reizes pēc kārtas.Izmanto parametrus, lai padarītu funkcijas darbību dinamisku un pielāgojamu dažādām situācijām.
parametri.py.def paradi_statusu(vards, dzivibas):.print(f"Spēlētājs: {vards} | Dzīvības: {dzivibas}").Uzraksti sarežģītāku funkciju, kas izmanto ciklu un laika moduli teksta dinamiskai attēlošanai ekrānā.
cyoa_scrolling.py.import time, sys.def druka_lenam(teksts):
for simbols in teksts:
print(simbols, end="", flush=True)
time.sleep(0.05) # Pauze starp burtiem
print() # Pāreja jaunā rindā teksta beigās
def apraksti_vietu(nosaukums, apraksts):.apraksti_vietu iekšpusē vispirms izvadi rāmīti (piem., print("===========")), pēc tam izsauc savu jauno funkciju druka_lenam(apraksts), pabeidzot ar vēl vienu rāmīti apakšā.apraksti_vietu() ar nosaukumu un garāku stāsta fragmentu.Apvieno funkciju parametrus ar matemātiskajiem operatoriem, lai ģenerētu vizuālus elementus.
hp_josla.py.zime_hp_joslu(vards, hp_punkti).simbolu_skaits, kas iegūts, veseli dalot (//) hp_punkti ar 10.josla = "█" * simbolu_skaits.def rindas nav nobīdīts pa labi. Funkcijas ķermenis drīkst saturēt tikai atbilstoši iebīdītas rindas.
# Slikti:
def sveiciens():
print("Sveiks!")
# Labi:
def sveiciens():
print("Sveiks!")
# Slikti:
def statuss(vards, hp):
print(vards)
statuss("Bruņinieks") # Trūkst 'hp' argumenta
# Labi:
statuss("Bruņinieks", 100)
# Slikti:
mans_sveiciens()
def mans_sveiciens():
print("Sveiks!")
# Labi:
def mans_sveiciens():
print("Sveiks!")
mans_sveiciens()
# 1. Funkcijas definēšana (receptes sagatavošana)
def aprekinat_un_paradit_zaudejumus(uzbrucejs, aizstavis, speks, brunas):
bojajums = speks - brunas
if bojajums < 0:
bojajums = 0
print(f"{uzbrucejs} uzbrūk! {aizstavis} zaudē {bojajums} veselības punktus.")
# 2. Funkcijas izsaukšana (gatavošana praksē)
aprekinat_un_paradit_zaudejumus("Pūķis", "Bruņinieks", 50, 20)
aprekinat_un_paradit_zaudejumus("Bruņinieks", "Pūķis", 30, 40)