3. tēma: Vadības struktūras. 3. stunda: While cikli un to kontrole.

Tavs šīs stundas izaicinājums: Izveidot spēles dzinēju, kas nebeidzas pēc viena gājiena. Tu iemācīsies lietot while ciklu, lai atkārtotu darbības, un apgūsi, kā kontrolēt šo procesu ar break un continue.

SR 2.4.14. (Ciklu struktūras)

Teorija: Ciklu vadības rīki

Komanda Ko tā dara? Pielietojums spēlē
while Atkārto kodu, kamēr nosacījums ir patiess. Spēles galvenais "dzinējs".
break Nekavējoties pārtrauc un izlec no cikla. Poga "Iziet no spēles" vai uzvaras sasniegšana.
continue Pārlēkt uz nākamo cikla raundu. Kļūdainas ievades ignorēšana un jauns mēģinājums.

Drošības padoms: Ja programma iesprūst bezgalīgā ciklā, terminālī spied Ctrl + C, lai to apturētu piespiedu kārtā!

Praktiskie uzdevumi

1. uzdevums: Neatlaidīgā parole

  1. VS Code izveido failu parole.py.
  2. Definē mainīgo pareiza_parole = "Python123".
  3. Izmanto while True: ciklu, lai bezgalīgi jautātu paroli.
  4. Cikla iekšienē pievieno pārbaudi: ja ievadītā parole sakrīt ar pareizo, izmanto komandu break.
  5. Ārpus cikla (pašās koda beigās bez atkāpes) izvadi: "Piekļuve piešķirta!".

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

  1. Izveido failu cikls_tiesnesis.py.
  2. Ievieto iepriekšējās stundās rakstīto spēles loģiku while True: ciklā.
  3. Pievieno spēlētājam iespēju ievadīt "stop", lai pārtrauktu spēli.
  4. Ja ievadīts "stop", izmanto break.
  5. Pārējos gadījumos izmanto continue, ja ievade ir tukša, lai spēlētājs mēģinātu vēlreiz bez kļūdu paziņojumiem.

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

  1. Izveido failu duelitis_v3.py.
  2. Izveido punktu skaitītājus: p_cilveks = 0 un p_dators = 0.
  3. Izveido ciklu, kas darbojas, kamēr neviens nav sasniedzis limitu: while p_cilveks < 3 and p_dators < 3:.
  4. Katrā raundā paziņo aktuālo rezultātu un piespried punktu uzvarētājam (piem., p_cilveks += 1).
  5. Spēles beigās (ārpus cikla) paziņo galveno uzvarētāju, izmantojot f-string!

Biežākās kļūdas:

Koda paraugs: Cikla kontrole

# Cikla kontroles paraugs
while True:
    minejums = input("Uzmini skaitli (vai raksti 'stop'): ")
    
    if minejums.lower() == "stop":
        print("Spēle pārtraukta.")
        break
        
    if minejums == "":
        print("Ievade nevar būt tukša!")
        continue # Atgriežas uz cikla sākumu
        
    print(f"Tu minēji: {minejums}")
Uzmini skaitli: 5
Tu minēji: 5
Uzmini skaitli:
Ievade nevar būt tukša!
Uzmini skaitli: stop
Spēle pārtraukta.
⬅ Iepriekšējā stunda Nākamā stunda ➡