Stundas uzdevums: Izprast programmatūras arhitektūras pamatprincipus un sadalīt spēles loģiku vairākos izolētos failos, izveidojot pārskatāmu un profesionālu projekta struktūru.
2.4.15. Veido modulāras programmas un funkcijas.70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
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ļā.
Python valodā jebkurš fails ar .py paplašinājumu ir Module (Modulis). Koda dalīšana moduļos padara to lasāmu, novērš viena milzīga faila veidošanos un ļauj komandai strādāt vienlaicīgi pie dažādām projekta daļām.
import fails. Ielādē visu moduli. Izsaucot funkciju, obligāti jānorāda moduļa nosaukums.
# Importē visu moduli
import ieroci
# Funkcijas izsaukums prasa moduļa prefiksu
ieroci.saut()
from fails import funkcija. Ielādē tikai konkrētu komponenti. Funkciju var izsaukt tieši, bet jāuzmanās no nosaukumu konfliktiem ar esošo kodu.
# Importē tikai vienu funkciju
from ieroci import saut
# Funkciju var izsaukt tieši
saut()
Visiem Tavas spēles moduļiem jāatrodas vienā Directory (Mapē), lai dators varētu tos automātiski atrast bez sarežģītas ceļu konfigurēšanas.
Š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 4.3 Modularitāte un koda sadalīšana; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
# Importē tikai vienu funkciju
from ieroci import saut
# Funkciju var izsaukt tieši
saut()
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.
# Slikti: (Ja fails patiesībā saucas ui.py)
import UI_modulis
# Labi:
import ui
# Slikti:
# (Failā main.py): import kauja
# (Failā kauja.py): import main
# Labi:
# Atstāj galveno loģiku main.py, bet palīgmoduļi tikai veic aprēķinus.
random.py). Python ignorēs sistēmas moduli un lādēs Tavu tukšo failu.
# Slikti:
# Sava faila nosaukšana par "random.py" un tad rakstīšana:
import random # Python ielādēs tavu failu, un random.randint() nedarbosies.
# Labi:
# Faila nosaukums: "mans_ģenerators.py"
# ==========================================
# 1. fails: punkti.py (Modulis aprēķiniem)
def aprekinat_bonusus(riks):
if riks == "marķieris":
return 15
return 5
# ==========================================
# 2. fails: main.py (Galvenais skripts)
import punkti
speletaja_riks = "marķieris"
# Izsaucam funkciju, norādot moduļa vārdu "punkti"
bonuss = punkti.aprekinat_bonusus(speletaja_riks)
print(f"Tu izmanto {speletaja_riks} un iegūsti {bonuss} punktus!")