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.
70 min plāns: Ievads un kritēriju pārruna (~10 min) · 1. uzdevums (~15 min) - savāc ievadi un konvertē tipus · 2. uzdevums (~25 min) - uzraksti formulu un f-string izvadi · 3. uzdevums (~20 min) - sakārto stilu un iesniedz GitHub. Papildu uzdevumu sāc tikai tad, ja pārējie trīs ir gatavi.
Pirms sāc: šis ir 2. tēmas noslēguma projekts. Jaunas konstrukcijas nav vajadzīgas - izmanto tikai input, int, float, operatorus un f-string. Atver savu 2.5 stundas plānu.
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!")
Praktiskie uzdevumi
1. uzdevums -
Savāc ievadi un konvertē tipus
Beigās programma pajautās visu, kas duelim vajadzīgs.
- Izveido failu
duelis.pysavā krātuvē. - Ieraksti faila sākumā komentāru ar savu vārdu, datumu un spēles mērķi.
- Ieraksti
vards = input("Ievadi varoņa vārdu: "). - Ieraksti
speks = int(input("Uzbrukuma spēks: ")). - Ieraksti
veiksme = float(input("Veiksmes koeficients: ")). - Palaid programmu un pārbaudi, ka visi trīs jautājumi parādās.
Gatavs, kad: programma pajautā trīs lietas pēc kārtas un neavarē, ja atbildi pareizi.
2. uzdevums -
Uzraksti formulu un f-string izvadi
Beigās spēle pateiks, cik punktu varonis ieguva duelī.
- Ieraksti aprēķinu
rezultats = (speks ** 2) * veiksme. - Izdrukā to ar
print(f"{vards} duelī iegūst {rezultats:.1f} punktus!"). - Palaid ar spēku 5 un veiksmi 1.2.
- Pārbaudi ar roku, vai 5 kvadrātā reiz 1.2 tiešām ir 30.0.
- Palaid vēl divas reizes ar citiem skaitļiem.
- Pārliecinies, ka aiz punkta vienmēr ir tieši viens cipars.
Gatavs, kad: izvade ir viens salasāms teikums ar varoņa vārdu un noapaļotu rezultātu.
3. uzdevums -
Sakārto stilu un iesniedz GitHub
Beigās tavs darbs būs publicēts un gatavs vērtēšanai.
- Pārbaudi, ka visi mainīgie ir snake_case un bez lielajiem burtiem.
- Pievieno atstarpes ap operatoriem un tukšu rindu starp koda daļām.
- Pievieno vienu komentāru, kas paskaidro formulas jēgu.
- Palaid programmu pēdējo reizi un pārliecinies, ka nav kļūdu.
- Veic commit ar ziņu
Pievieno skaitļu duelīti. - Nospied Push origin un pārbaudi failu GitHub lapā.
- Iesniedz krātuves saiti skolotājam.
Gatavs, kad: GitHub lapā ir redzams duelis.py, un tajā ir komentāri un sakārtots stils.
Papildu uzdevums - Pievieno otro raundu
Ja pamatdarbs ir gatavs, liec spēlei salīdzināt divus varoņus.
- Nokopē ievades daļu otram varonim ar mainīgajiem
vards2,speks2,veiksme2. - Izrēķini arī otrā varoņa rezultātu.
- Izdrukā abus rezultātus divās rindās.
- Pievieno rindu, kas izdrukā abu rezultātu starpību.
- Palaid un pārbaudi ar diviem dažādiem varoņiem.
Gatavs, kad: spēle izdrukā abu varoņu punktus un to starpību.
Biežākās kļūdas (un kā tās labot)
- Matemātika nestrādā: pārbaudi, vai ievades teksts ir pārveidots ar
int()vaifloat(). - f-string izvada `{vards}` burtiski: pirms pēdiņām jābūt burtam
f. - Formula ir pārāk vienkārša: izmanto vismaz trīs operatorus, bet nepievieno vēl neapgūtus ciklus vai if/else.
- GitHub nav jaunākās versijas: pēc commit veic arī push.
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:
- Kļūdu izturība: Vai programma "salūzt", ja ievada skaitli ar punktu tur, kur gaidīts
float? - f-string sintakse: Vai pārliecinājies, ka pirms pēdiņām ir burts
f? - Git ziņojumi: Vai izvairījies no ziņojumiem kā "fix" vai "..." un rakstīji skaidri?
- Ergonomika: Vai README failā esi pieminējis savu darba vidi un labsajūtu?
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
2 files changed, 45 insertions(+)
To github.com/lietotajs/duelitis.git