Stundas uzdevums: Izveidot spēles dzinēju, kas turpina darboties neatkarīgi no viena gājiena beigām. Apgūsi, kā lietot ciklus un strukturēt koda atkārtošanos, izmantojot plūsmas kontroles rīkus.
2.4.14. Izmanto algoritmu vadības struktūras (sazarojumi, cikli).70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
Loops (Cikli) ļauj atkārtot koda bloku vairākas reizes, neatkārtojot pašu kodu. While loop (Kamēr cikls) darbojas tik ilgi, kamēr tā nosacījums ir True (Patiess).
# Cikls izpildīsies 3 reizes
dzivibas = 3
while dzivibas > 0:
print("Spēlējam!")
dzivibas -= 1
while nosacījums joprojām ir True. Lieliski noder spēles pabeigšanai.
while True:
ievade = input("Raksti 'stop': ")
if ievade == "stop":
break # Cikls beidzas šeit un programma turpinās tālāk
while True:
vards = input("Vārds: ")
if vards == "":
continue # Ignorē tukšu ievadi un prasa vārdu no jauna
print(f"Sveiks, {vards}!")
Drošības padoms: Ja tava programma iesprūst Infinite loop (Bezgalīgajā ciklā) un nekad nebeidzas, terminālī nospied Ctrl + C, lai to apturētu piespiedu kārtā!
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 3.3 While cikli un kontrole; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
while True:
vards = input("Vārds: ")
if vards == "":
continue # Ignorē tukšu ievadi un prasa vārdu no jauna
print(f"Sveiks, {vards}!")
main.py failā un palaid no termināļa.Pievieno šīs stundas paņēmienu kā nelielu, strādājošu projekta daļu.
punkti, gajiens, atbilde, rezultats vai parbauda_ievadi().Pārbaudi, vai algoritms darbojas paredzami vairākās situācijās.
Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu programmētu uzlabojumu.
while nosacījums nekad nekļūst False un ciklā nav break, programma iestrēgs. Vienmēr pārliecinies, ka cikla iekšpusē mainīgie tiek atjaunināti!
# Slikti (iestrēgst mūžīgi, jo i vienmēr paliek 0):
i = 0
while i < 5:
print(i)
# Labi (i palielinās, un cikls beigsies):
i = 0
while i < 5:
print(i)
i += 1
break / continue: Šīm komandām jāatrodas stingri zem if pārbaudes. Ja tās būs nepareizā līmenī, cikls var apstāties jau pašā pirmajā iterācijā bez iemesla.break: Jebkura komanda, kas ierakstīta tieši zem break (tajā pašā atkāpes līmenī), nekad netiks izpildīta.
# Slikti (print nekad nenostrādās):
if parole == "123":
break
print("Pareizi!")
# Labi:
if parole == "123":
print("Pareizi!")
break
# Cikla kontroles paraugs ar spēlētāja izvēli
while True:
minejums = input("Uzmini skaitli (vai raksti 'stop'): ")
# Iziet no cikla pilnībā
if minejums.lower() == "stop":
print("Spēle pārtraukta.")
break
# Pārlēkt uz nākamo iterāciju, ignorējot tālāko kodu
if minejums == "":
print("Ievade nevar būt tukša!")
continue
print(f"Tu minēji: {minejums}")