ebSkola

2.5 Spēles plānošana

Stundas uzdevums: Izstrādāt spēles matemātisko modeli un strukturēt programmas algoritmu ar pseidokoda palīdzību, lai precīzi definētu projekta loģiku pirms koda rakstīšanas.

2.4.1. Analizē problēmu, identificē datus un veic decompozīciju. 2.4.6. Plāno un dokumentē programmatūras izstrādes procesu.

70 min plāns: Teorija un paraugs (~10 min) · 1. uzdevums (~15 min) - uzraksti spēles pseidokodu · 2. uzdevums (~25 min) - definē mainīgos un formulu · 3. uzdevums (~20 min) - pārbaudi formulu README.md failā un tad kodā. Papildu uzdevumu sāc tikai tad, ja pārējie trīs ir gatavi.

Pirms sāc: atver projekta README.md. Šajā stundā vispirms izplāno darbu README.md failā un tikai 3. uzdevumā atver VS Code.

Teorija: Matemātiskais modelis un algoritms

Veiksmīgas programmatūras pamats ir rūpīga plānošana. Tā vietā, lai uzreiz rakstītu kodu, mēs vispirms veidojam Algorithm (Algoritmu) – precīzu, secīgu darbību plānu problēmas risināšanai.

Jebkura programma darbojas pēc trīs soļu principa:

  • Input (Ievade): Datu iegūšana no lietotāja. Pirms koda rakstīšanas jādefinē, kādi Variables (Mainīgie) būs nepieciešami.
    # Piemērs: Iegūstam nepieciešamos datus
    speletaja_skaitlis = int(input("Ievadi savu skaitli: "))
  • Process (Apstrāde): Datu matemātiska un loģiska manipulācija. Kā mēs rēķināsim rezultātu?
    # Piemērs: Apstrādājam datus pēc izdomātas formulas
    rezultats = (speletaja_skaitlis * 2) + 15
  • Output (Izvade): Rezultāta atgriešana lietotājam cilvēkam saprotamā formātā.
    # Piemērs: Formatēta rezultāta parādīšana
    print(f"Tavs iznākums ir: {rezultats}")

Praktiskie uzdevumi

1. uzdevums -

Uzraksti spēles pseidokodu

Beigās tev būs plāns ar numurētiem soļiem, pēc kura vari rakstīt kodu.

  1. Uzraksti README.md failā virsrakstu Ievade un zem tā, ko programma pajautās spēlētājam.
  2. Uzraksti virsrakstu Apstrāde un zem tā, kas tiks izrēķināts.
  3. Uzraksti virsrakstu Izvade un zem tā, ko spēlētājs redzēs.
  4. Sanumurē visus soļus no 1 līdz beigām vienā kopīgā sarakstā.
  5. Pārbaudi, vai katrs solis ir viena darbība, nevis divas.
  6. Iedod plānu klasesbiedram un pajautā, vai viņš saprot, ko spēle dara.

Gatavs, kad: tavā README.md failā ir vismaz 5 numurēti soļi un klasesbiedrs saprata spēles ideju bez tava skaidrojuma.

2. uzdevums -

Definē mainīgos un formulu

Beigās tu zināsi katra mainīgā vārdu un tipu vēl pirms koda rakstīšanas.

  1. Uzraksti README.md failā tabulu ar trim kolonnām: mainīgā vārds, datu tips, ko glabā.
  2. Ieraksti tajā vismaz trīs mainīgos, piemēram speletaja_vards (str).
  3. Atzīmē katram, vai tas ir str, int vai float.
  4. Uzraksti zem tabulas savu formulu ar mainīgo vārdiem, nevis vārdiem latviski.
  5. Pārbaudi, vai formulā lietoti tikai tie mainīgie, kas ir tabulā.
  6. Pieraksti, kurš mainīgais nāk no input() un kurš tiek izrēķināts.

Gatavs, kad: tabulā katram mainīgajam ir tips, un formulā nav neviena mainīgā, kas nebūtu tabulā.

3. uzdevums -

Pārbaudi formulu README.md failā un tad kodā

Beigās tu zināsi, vai tava formula dod loģiskus skaitļus.

  1. Izvēlies trīs testa vērtību komplektus: mazu, vidēju un lielu.
  2. Izrēķini formulu ar roku katram komplektam un pieraksti rezultātus README.md failā.
  3. Atver VS Code un izveido failu plans.py.
  4. Ieraksti savu pseidokodu kā komentārus ar # katrā rindā.
  5. Pievieno zem komentāriem īstu kodu, kas izrēķina formulu ar cietkodētiem skaitļiem.
  6. Salīdzini datora rezultātu ar to, ko izrēķināji ar roku.
  7. Pieraksti README.md failā vienu secinājumu: kāpēc formulu vērts pārbaudīt pirms visas programmas rakstīšanas.

Gatavs, kad: visos trīs gadījumos dators un README.md failā ierakstītais aprēķins dod vienu un to pašu skaitli.

Papildu uzdevums - Uzzīmē blokshēmu

Ja pamatdarbs ir gatavs, pārvērs savu plānu attēlā.

  1. Uzzīmē ovālu ar vārdu Sākums.
  2. Uzzīmē paralelogramu katrai ievadei.
  3. Uzzīmē taisnstūri aprēķinam.
  4. Uzzīmē paralelogramu izvadei un ovālu ar vārdu Beigas.
  5. Savieno visas figūras ar bultām no augšas uz leju.

Gatavs, kad: shēmu var izlasīt no augšas uz leju un tā sakrīt ar taviem numurētajiem soļiem.

Biežākās kļūdas plānošanā:

  • Pārāk sarežģītas formulas: Ja paši spēlētāji vai izstrādātājs nesaprot, kā veidojas rezultāts, programmu būs grūti atkļūdot (Debug). Izmanto secīgu aprēķinu, ja nepieciešams.
  • Datu tipu nesaderības (Type mismatch) ignorēšana: Vienmēr plāno, kur būs nepieciešama funkcija int() un kur float(), citādi dators mēģinās veikt matemātiku ar tekstu.
  • Nekonsekventa mainīgo nosaukšana: Ja plānā nosauc mainīgo par speletaja_punkti, bet reālajā kodā raksti punkti, radīsies kļūdas. Jau plānošanas posmā lieto pareizu Snake Case sintaksi.

Pseidokoda un programmas skeleta piemērs

# 1. Sasveicināties ar spēlētāju un izskaidrot spēles noteikumus
# 2. Iegūt 'speletaja_vards' (str) un 'bazes_likme' (int)
# 3. Iegūt 'veiksmes_reizinatajs' (float)
# 4. Veikt aprēķinu: kopejais = (bazes_likme * veiksmes_reizinatajs) + 10
# 5. Parādīt rezultātu, izmantojot f-string
* Šis fails pašlaik neko neizpilda. Tas ir tavs darba plāns koda rakstīšanai! *