›_ ebskola.lv
← 2.5

2.6 Noslēguma projekts: "Lielais skaitļu duelītis"

Stundas uzdevums: Izveidot interaktīvu skaitļu duelīša spēli, izmantojot tikai 2. tēmā apgūto: ievadi, datu tipu pārveidošanu, matemātiskos operatorus, f-strings un koda stilu.

SR 2.4.8. Koda noformēšana un dokumentēšana SR 2.4.9. Versiju pārvaldība ar Git SR 2.4.13. Mainīgie, datu tipi un pamatkonstrukcijas SR 3.1.1. Ergonomika un droša darba vide

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ļā.

Teorija: interaktīva spēle no datiem un formulas

Šis projekts nav par sarežģītu spēles dzinēju. Tas pārbauda, vai vari iegūt spēlētāja datus ar input(), pārveidot tos par skaitļiem, izmantot matemātisku formulu un izvadīt rezultātu saprotamā teikumā. Ja katrs ievades dati ir pareizā tipā, formula kļūst viegli pārbaudāma.

vards = input("Ievadi varoņa vārdu: ")
speks = int(input("Uzbrukuma spēks: "))
veiksme = float(input("Veiksmes koeficients: "))

rezultats = (speks ** 2) * veiksme
print(f"{vards} duelī iegūst {rezultats:.1f} punktus!")
Iepriekš apgūts: input, int, float, ** operators un f-string izvade.

70 min plāns: spēles loģika ~30 min, dokumentācija un stils ~20 min, GitHub iesniegšana ~20 min.

Praktiskie uzdevumi

1. uzdevums - Iesildies ar gatavu piemēru

Š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 2.6 Noslēguma projekts: "Lielais skaitļu duelītis"; detalizētu izpratni veidosi nākamajos uzdevumos.

Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.

vards = input("Ievadi varoņa vārdu: ")
speks = int(input("Uzbrukuma spēks: "))
veiksme = float(input("Veiksmes koeficients: "))

rezultats = (speks ** 2) * veiksme
print(f"{vards} duelī iegūst {rezultats:.1f} punktus!")
  1. Atver darba failu vai rīku. Python fragmentu ievieto main.py failā un palaid no termināļa.
  2. Nokopē visu piemēra bloku no šī uzdevuma un ielīmē to norādītajā vietā.
  3. Palaid kodu tieši tādu, kāds tas ir, un pārliecinies, ka parādās rezultāts, izvade vai vismaz nav kļūdas paziņojuma.
  4. Atrodi vienu drošu vietu, ko drīkst mainīt: tekstu, skaitli, krāsu, mainīgā vērtību vai testa ierakstu.
  5. Maini tikai šo vienu vērtību un palaid kodu vēlreiz.
  6. Salīdzini rezultātu pirms un pēc izmaiņas. Ja parādās kļūda, atcel pēdējo izmaiņu un palaid vēlreiz.
  7. Turpini pie 2. uzdevuma tikai tad, kad šis mazais piemērs darbojas.

2. uzdevums - Ievieto algoritmu projektā

Pievieno šīs stundas paņēmienu kā nelielu, strādājošu projekta daļu.

  1. Izvēlies vienu konkrētu projekta vietu: ievadi, aprēķinu, izvēli, ciklu, datu struktūru, funkciju vai rezultāta izvadi.
  2. Nosauc funkcijas un mainīgos pēc to lomas, piemēram, punkti, gajiens, atbilde, rezultats vai parbauda_ievadi().
  3. Uzraksti funkciju vai koda bloku, kas nolasa sākuma datus, tos apstrādā un atgriež vai izvada rezultātu.
  4. Savieno šo kodu ar jau esošo projekta plūsmu, nevis atstāj to atsevišķā demonstrācijā.
  5. Pievieno vienu īsu komentāru pie sarežģītākās darbības.
  6. Pārbaudi, ka iepriekšējais kods joprojām darbojas pēc jaunā fragmenta pievienošanas.
  7. Salabo pirmo atrasto kļūdu pirms paplašini risinājumu.
  8. Veic Git commit ar īsu ziņu par pievienoto funkcionalitāti.

3. uzdevums - Testē kodu un izdari secinājumu

Pārbaudi, vai algoritms darbojas paredzami vairākās situācijās.

  1. Izveido trīs testa scenārijus: parasta ievade, robežgadījums un kļūdaina vai tukša ievade.
  2. Palaid parasto scenāriju un pārbaudi termināļa izvadi.
  3. Palaid robežgadījumu ar mazāko, lielāko vai tukšāko vērtību, ko šis kods var saņemt.
  4. Palaid kļūdaino scenāriju un pārbaudi, vai programma neavarē.
  5. Izlabo vienu konkrētu problēmu kodā, datos vai ievades pārbaudē.
  6. Pārbaudi labojumu vēlreiz ar visiem trim scenārijiem.
  7. Beigās pieraksti vienu secinājumu: kura koda rinda vai algoritma solis vislabāk palīdzēja saprast tēmu 2.6 Noslēguma projekts: "Lielais skaitļu duelītis".

Papildu uzdevums - Pievieno mazu funkciju

Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu programmētu uzlabojumu.

  1. Izvēlies vienu mazu papildinājumu, kas izmanto to pašu šīs stundas paņēmienu.
  2. Pievieno vienu jaunu mainīgo, funkciju, nosacījumu, ciklu, datu elementu vai rezultāta izvadi.
  3. Savieno papildinājumu ar esošo projekta kodu.
  4. Pārbaudi, ka pamatfunkcija un papildinājums darbojas kopā.
  5. Saglabā izmaiņas ar Git commit tikai pēc veiksmīgas pārbaudes.

Biežākās kļūdas (un kā tās labot)

Snieguma līmeņa apraksts (Vērtēšanas tabula)

Kritēriji Sācis apgūt (1-3) Turpina apgūt (4-6) Apguvis (7-8) Padziļināti (9-10)
Sintakse un I/O Nav izmantots input() vai f-strings. Lieto input(), bet f-strings ir nepilnīgi. Brīvi lieto input() un f-strings izvadei. Izvade ir profesionāla un lietotājam draudzīga.
Datu tipi un Matemātika Nav veikta konvertācija; kļūdas rēķinot. Veikta konvertācija, bet matemātika ir vienveidīga. Lieto int/float un dažādas operācijas (+, //, %, **). Izveidots oriģināls un pamatots matemātiskais modelis.
Koda stils un Komentāri Mainīgie nav saprotami. Komentāru nav. Lietots Snake Case ar kļūdām. Maz komentāru. Mainīgo nosaukumi ir skaidri. Svarīgākās daļas komentētas. Atbilst PEP 8. Komentāri paskaidro loģiku ("kāpēc").
Git un Dokumentācija Viens commit. README trūkst. Git vēsturē 2 commit. README ir nepilnīgs. Jēgpilni commit. README satur instrukciju. Profesionāla Git vēsture un ergonomikas pašvērtējums.

Pārbaudi sevi pirms iesniegšanas:

Atgādinājums par koda struktūru

# 1. Dokumentācija: Autors, datums, mērķis
# 2. Ievade un konvertācija (str -> int/float)
# 3. Matemātiskais modelis (loģika)
# 4. Personalizēta izvade ar f-string
[main b2c3d4e] Pabeigta duelīša versija 1.0
2 files changed, 45 insertions(+)
To github.com/lietotajs/duelitis.git
⬅ Iepriekšējā stunda Tēmas apkopojums ➡