3. tēma: 3.3 While cikli un kontrole

Tavs šīs stundas izaicinājums: Izveidot spēles dzinēju, kas turpina darboties neatkarīgi no viena gājiena beigām. Tu iemācīsies 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).

Teorija: Ciklu vadības rīki

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).

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ā!

1. uzdevums: Neatlaidīgā parole

Izmanto While loop (Kamēr ciklu), lai atkārtoti pieprasītu lietotāja ievadi, līdz tiek saņemta pareiza informācija.

Izpildes soļi:

  1. VS Code izveido failu parole.py.
  2. Definē Variable (Mainīgo): pareiza_parole = "Python123".
  3. Izveido Infinite loop (Bezgalīgo ciklu), rakstot while True:.
  4. Cikla iekšpusē (ar Indentation (Atkāpi)) pieprasi lietotājam ievadīt paroli.
  5. Pievieno zarošanos: ja ievadītā parole sakrīt ar pareiza_parole, izmanto komandu break.
  6. Ārpus cikla (pašās koda beigās bez atkāpes) izvadi ziņojumu: "Piekļuve piešķirta!".

2. uzdevums: Spēles "Dzinējs"

Pielieto Break un Continue, lai radītu kontrolējamu programmas plūsmu un ignorētu kļūdainu ievadi.

Izpildes soļi:

  1. Izveido failu cikls_tiesnesis.py.
  2. Ievieto iepriekšējās stundās rakstīto "Akmens-Šķēres-Papīrīts" loģiku iekš while True: cikla (pārliecinies, ka visam kodam iekšpusē ir pareizas atkāpes).
  3. Sākumā pievieno iespēju spēlētājam ievadīt "stop", lai pārtrauktu spēli (izmanto break).
  4. Pievieno vēl vienu pārbaudi: ja spēlētāja ievade ir pilnīgi tukša (""), izmanto komandu continue, lai cikls sāktos no jauna un lietotājs varētu mēģināt vēlreiz bez kļūdu paziņojumiem.

3. uzdevums: Duelis līdz 3 uzvarām

Izmanto cikla nosacījumu ar loģiskajiem operatoriem, lai ierobežotu raundu skaitu un uzturētu spēles stāvokli.

Izpildes soļi:

  1. Izveido failu duelitis_v3.py.
  2. Izveido divus punktu skaitītājus (piešķir vērtību 0): p_cilveks un p_dators.
  3. Izveido ciklu, kas turpina darboties, kamēr neviens nav sasniedzis 3 uzvaras: while p_cilveks < 3 and p_dators < 3:.
  4. Cikla iekšpusē katrā raundā paziņo aktuālo rezultātu un pieskaiti punktu uzvarētājam (izmanto pieskaitīšanas operatoru: p_cilveks += 1).
  5. Spēles beigās (jeb ārpus cikla) paziņo turnīra uzvarētāju, izmantojot f-string!
  6. Iesūtīt uzdevuma github saiti e-klasē.

Biežākās kļūdas (un kā tās labot):

Koda piemērs: Cikla kontrole

# 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}")
Uzmini skaitli (vai raksti 'stop'): 5
Tu minēji: 5
Uzmini skaitli (vai raksti 'stop'):
Ievade nevar būt tukša!
Uzmini skaitli (vai raksti 'stop'): stop
Spēle pārtraukta.
⬅ Iepriekšējā stunda Nākamā stunda ➡