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.
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.
- Uzraksti README.md failā virsrakstu
Ievadeun zem tā, ko programma pajautās spēlētājam. - Uzraksti virsrakstu
Apstrādeun zem tā, kas tiks izrēķināts. - Uzraksti virsrakstu
Izvadeun zem tā, ko spēlētājs redzēs. - Sanumurē visus soļus no 1 līdz beigām vienā kopīgā sarakstā.
- Pārbaudi, vai katrs solis ir viena darbība, nevis divas.
- 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.
- Uzraksti README.md failā tabulu ar trim kolonnām: mainīgā vārds, datu tips, ko glabā.
- Ieraksti tajā vismaz trīs mainīgos, piemēram
speletaja_vards(str). - Atzīmē katram, vai tas ir
str,intvaifloat. - Uzraksti zem tabulas savu formulu ar mainīgo vārdiem, nevis vārdiem latviski.
- Pārbaudi, vai formulā lietoti tikai tie mainīgie, kas ir tabulā.
- 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.
- Izvēlies trīs testa vērtību komplektus: mazu, vidēju un lielu.
- Izrēķini formulu ar roku katram komplektam un pieraksti rezultātus README.md failā.
- Atver VS Code un izveido failu
plans.py. - Ieraksti savu pseidokodu kā komentārus ar
#katrā rindā. - Pievieno zem komentāriem īstu kodu, kas izrēķina formulu ar cietkodētiem skaitļiem.
- Salīdzini datora rezultātu ar to, ko izrēķināji ar roku.
- 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ā.
- Uzzīmē ovālu ar vārdu
Sākums. - Uzzīmē paralelogramu katrai ievadei.
- Uzzīmē taisnstūri aprēķinam.
- Uzzīmē paralelogramu izvadei un ovālu ar vārdu
Beigas. - 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 kurfloat(), 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ā rakstipunkti, 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