6. tēma: Datu pastāvība un Analīze. 5. stunda: Analīze un Vizualizācija.

Tavs šīs stundas izaicinājums: Ieraudzīt "kopbildi". Tu iemācīsies aprēķināt statistiku no saviem JSON/CSV failiem un izveidot vizuālas diagrammas (pat ja tās sākotnēji ir tikai terminālī). Tas palīdzēs saprast, vai Tava spēle ir par vieglu, par grūtu un kuras izvēles spēlētājiem patīk visvairāk.

SR 2.3.6. (Datu vizualizācija un interpretācija)

Teorija: No skaitļiem uz secinājumiem

Datu analīze nav tikai matemātika — tā ir spēja pieņemt lēmumus, balstoties uz reāliem faktiem. Programmēšanā mēs izmantojam divus galvenos jēdzienus:

Kāpēc tas ir svarīgi spēļu izstrādē?

Ja Tava statistika rāda, ka 90% spēlētāju izvēlas "Zobenu", tas nozīmē, ka "Burvju nūjiņa" ir vai nu pārāk vāja, vai garlaicīga. Izmantojot šos datus, mēs veicam Game Balancing (spēles līdzsvarošanu).

Praktiskie uzdevumi

1. uzdevums: Statistiskais profils

Iegūt galvenos rādītājus no uzkrātajiem rezultātiem, lai saprastu "vidējo spēlētāju".

  1. VS Code izveido failu analize.py.
  2. Nolasi visus rezultātus no iepriekšējā stundā izveidotā leaderboard.json.
  3. Aprēķini un izvadi terminālī: kopējo spēlētāju skaitu (ar len()) un augstāko rezultātu.
  4. Izveido for ciklu, kas sasummē visus punktus, un aprēķini spēlētāju vidējo punktu skaitu.

2. uzdevums: Izvēļu "Siltuma karte"

Saskaitīt biežumu katrai izvēlētajai lokācijai un attēlot to kā teksta diagrammu terminālī.

  1. Izveido vārdnīcu, kurā saskaiti, cik reizes spēlētāji ir "miruši" konkrētās lokācijās (piemēram, {"Mežs": 15, "Ala": 8, "Pils": 3}).
  2. Izmanto for ciklu ar .items() metodi, lai pārlūkotu šo vārdnīcu.
  3. Katrai lokācijai uzzīmē stabiņu diagrammu, reizinot simbolu "#" ar nāvju skaitu.
  4. Piemērs: Mežs: ############### (15).

3. uzdevums: Eksports profesionālai analīzei

Sagatavot "tīrus" datus eksportam, lai izveidotu vizuāli pievilcīgu grafiku Google Sheets.

  1. Izveido skriptu, kas atlasa tikai tos spēlētājus no JSON faila, kuriem ir vairāk par 0 punktiem (izslēdz "feikos" mēģinājumus un tukšos datus).
  2. Saglabā šos datus jaunā failā report.csv ar galvenēm Vards,Punkti.
  3. Importē šo CSV failu Google Sheets un izveido Sektoru diagrammu (Pie Chart), kas vizuāli parāda punktu sadalījumu.

Biežākās kļūdas datu analīzē:

1. Dalīšana ar nulli: Ja neviens vēl nav spēlējis spēli (saraksts ir tukšs), mēģinājums aprēķināt vidējo punktu skaitu izraisīs ZeroDivisionError kļūdu. Vienmēr pārbaudi: if len(dati) > 0:!
2. Datu "troksnis": Testa ieraksti (piemēram, vārds "Asdf" ar 0 punktiem) bojā Tavu statistiku. Pirms analīzes dati ir jāiztīra ar if nosacījumiem.
3. Nepareizs grafiks: Nelieto sektoru diagrammu, ja Tev ir 50 dažādas vērtības — tajā nekas nebūs saskatāms. Izmanto stabiņu diagrammu (Bar chart) lielākam datu apjomam.

Koda paraugs: Termināļa stabiņu diagramma

statistika = {"Mežs": 15, "Ala": 8, "Pils": 3}

print("--- LOKĀCIJU POPULARITĀTE ---")

for vieta, skaits in statistika.items():
    # Reizinām simbolu ar skaitli, lai izveidotu vizuālu stabiņu
    stabins = "#" * skaits
    
    # {:10} nodrošina, ka lokāciju nosaukumi izlīdzinās glītā kolonnā
    print(f"{vieta:10} | {stabins} ({skaits})")
--- LOKĀCIJU POPULARITĀTE ---
Mežs | ############### (15)
Ala | ######## (8)
Pils | ### (3)

Padoms: Skaties uz datiem kā uz spēlētāju sarunu ar Tevi. Ja viņi visi "mirst" vienā un tajā pašā vietā, varbūt ir laiks to padarīt nedaudz vieglāku? 😉

⬅ Iepriekšējā stunda Nākamā stunda ➡