Stundas uzdevums: Izveidot kļūdu izturīgu "Akmens-Šķēres-Papīrīts" spēli, izmantojot tikai 3. tēmā apgūto: if/elif/else, loģiskos operatorus, while ciklu, break/continue, sarakstus un ievades validāciju.
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ļā.
Spēlei vajadzīgas trīs pazīstamas daļas. Saraksts glabā atļautās izvēles, random.choice() izvēlas datora gājienu, bet if/elif/else salīdzina spēlētāja un datora izvēli. while True ļauj spēlēt vairākus raundus, bet continue pasargā spēli no nepareizas ievades.
varianti = ["akmens", "skeres", "papirs"]
gajiens = input("Izvēlies: ").lower().strip()
if gajiens not in varianti:
print("Nederīga izvēle.")
continue
70 min plāns: spēles kodols ~25 min, validācija un cikls ~25 min, koda noformēšana un GitHub ~20 min.
Š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.6 Noslēguma projekts: "Gudrais Akmens-Šķēres-Papīrīts"; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
varianti = ["akmens", "skeres", "papirs"]
gajiens = input("Izvēlies: ").lower().strip()
if gajiens not in varianti:
print("Nederīga izvēle.")
continue
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.
random.choice(varianti), nevis cietkodētu vērtību.stop jāizsauc break.| Kritēriji | Sācis apgūt (1-3) | Turpina apgūt (4-6) | Apguvis (7-8) | Apguvis padziļināti (9-10) |
|---|---|---|---|---|
| Loģika un Nejaušība | Dators izvēlas fiksētu gājienu vai loģikā ir kļūdas. | Izmantots random, bet spēles rezultāti mēdz būt neprecīzi. |
Precīza tiesneša loģika un veiksmīga random.choice integrācija. |
Nevainojama loģika, izmantoti loģiskie operatori koda optimizācijai. |
| Cikli un Validācija | Programma izpildās vienreiz vai avarē pie kļūdainas ievades. | Cikls darbojas, bet kļūdaina ievade netiek pilnībā apstrādāta. | Lietots while True un break. Programma ir izturīga pret kļūdām. |
Izmantoti try/except, continue un kompleksi validācijas filtri. |
| Koda kvalitāte | Nav atkāpju, mainīgo nosaukumi ir neskaidri (a, b, c). | Kods ir lasāms, bet trūkst konsekvences stila ievērošanā. | Ievērots Snake Case. Svarīgākās daļas ir komentētas. | Kods ir elegants, profesionāli strukturēts un pašdokumentējošs. |
| Git vēsture | Nav Git vēstures vai tikai viens saglabāšanas punkts. | Ir Git vēsture, bet ziņojumi ir neinformatīvi (piem., "fix"). | Git vēsture rāda progresu (3+ punkti) ar skaidriem aprakstiem. | Vēsture dokumentē loģisku izstrādes gaitu un funkciju pieaugumu. |
# Profesionālas ievades un cikla kontroles piemērs
import random
varianti = ["akmens", "skeres", "papirs"]
print("--- LAIPNI LŪGTI SPĒLĒ ---")
while True:
gajiens = input("\nIzvēlies (akmens, skeres, papirs vai stop): ").lower().strip()
if gajiens == "stop":
print("Paldies par spēli! Uz redzēšanos.")
break
if gajiens not in varianti:
print("Kļūda! Lūdzu, raksti kādu no dotajiem variantiem.")
continue
dators = random.choice(varianti)
print(f"Dators izvēlējās: {dators}")
# Šeit turpini ar tiesneša loģiku...
Tu uzvarēji! Akmens salauž šķēres.