5. tēma: Noslēguma darbs. Projekts: "CYOA 2.0: Sistēmu integrācija".

Tavs mērķis: Papildināt iepriekšējā tēmā plānoto spēli ar "atmiņu" — izveidot sistēmu, kas seko līdzi spēlētāja inventāram, veselībai un progresam. Šis darbs parādīs Tavu spēju pārvaldīt datu struktūras (sarakstus un vārdnīcas) un nodrošināt to plūsmu starp dažādiem moduļiem.

SR 2.4.13. (Kolekcijas), 2.4.14. (Cikli), 2.4.1. (Datu struktūru izvēle)

Darba uzdevumi

1. solis: Spēlētāja profils (Vārdnīca)

  1. Failā data.py izveido vārdnīcu speletajs, kurā glabājas: vards, hp, zelts un tukšs saraksts inventars.
  2. Izveido sākuma funkciju, kas ļauj lietotājam ievadīt vārdu un saglabā to šajā vārdnīcā.
  3. Nodrošini, ka šī vārdnīca tiek padota kā parametrs visām lokāciju funkcijām, lai dati nepazustu.

2. solis: Dinamiskais inventārs (Saraksti un Cikli)

  1. Izveido funkciju paradit_inventaru(profils), kas ar for ciklu glīti izvada visus priekšmetus spēlētāja somā.
  2. Pievieno lokācijas, kurās spēlētājs var "pacelt" priekšmetu (izmantojot .append()).
  3. Realizē pārbaudi: spēlētājs var tikt tālāk tikai tad, ja inventārā ir konkrēts objekts (piemēram, "zelta_atslega").

3. solis: Arhitektūra un Git

  1. Sadalīt kodu vismaz 3 moduļos: main.py (palaišana), engine.py (loģika) un data.py (dati).
  2. Ievērot PEP 8 stilu un pievienot docstrings (trīskāršās pēdiņas) visām funkcijām.
  3. Veikt vismaz 4 jēgpilnus commit savā GitHub krātuvē (piem., "Pievienota vārdnīcu sistēma", "Realizēts inventāra cikls").
  4. Izveido README.md failu ar instrukciju, kā spēli palaist.

Snieguma līmeņa apraksts (SLA)

Kritēriji 4-6 (Turpina apgūt) 7-8 (Apguvis) 9-10 (Padziļināti)
Datu struktūras Lieto sarakstus, bet datu piekļuve ir statiska. Efektīvi lieto vārdnīcu profilam un sarakstu inventāram. Lieto ligzdotas struktūras (saraksts vārdnīcā) optimizācijai.
Cikli Izmanto for ciklu, bet izvade nav noformēta. Lieto ciklus un metodes (append/pop) datu vadībai. Veic datu validāciju vai meklēšanu kolekcijās ar ciklu palīdzību.
Arhitektūra Lietoti globālie mainīgie; funkcijām trūkst parametru. Funkcijas saņem un atgriež datus. Lokālais scope ir korekts. Universālas funkcijas; pilnīga koda modularitāte 3+ failos.

Koda paraugs: Sistēmu integrācija

# Kā padot vārdnīcu funkcijai un atjaunināt to:

def satikt_tirgotaju(speletajs):
    """Pārbauda zeltu un ļauj pievienot priekšmetu sarakstam."""
    print(f"Sveiks, {speletajs['vards']}! Tev ir {speletajs['zelts']} zelts.")
    
    if speletajs["zelts"] >= 10:
        speletajs["inventars"].append("Zobens")
        speletajs["zelts"] -= 10
        print("Tu nopirki zobenu!")
    else:
        print("Tev nepietiek naudas.")
        
    # Atgriežam atjaunoto vārdnīcu atpakaļ galvenajam ciklam
    return speletajs 
Sistēmas statuss: Aktīvs
Inventārs: ['Maize', 'Lāpa', 'Zobens']
Zelts: 5 | HP: 100
⬅ Iepriekšējā stunda Tēmas apkopojums ➡