Jarmil
Období: Týden 16/2026 (od 19.04.) Skupina: tria URL: https://github.com/samuelmichnik-oss/Jarmil.git
1. Splnění základních podmínek
| Podmínka | Status |
|---|---|
| Alespoň 3 commity v daném týdnu | ✅ SPLNĚNO |
| Rozestup alespoň 12h mezi 3 commity | ✅ SPLNĚNO |
| Projektová dokumentace (README, projekt.md) | ❌ NESPLNĚNO |
2. Přehled commitů
- 2026-04-19 09:55: Fix date formatting in README.md
- 2026-04-20 06:29: Update project status for Snake game tasks
- 2026-04-20 06:30: Fix main function call indentation in Snake_hra_projekt.py
- 2026-04-20 08:35: Refactor game loop and improve comments
- 2026-04-23 19:30: Remove unnecessary whitespace in Snake_hra_projekt.py
3. Výsledky AI analýzy kódu
| Metrika | Hodnota |
|---|---|
| Celkové body (AI) | 16 / 20 b. (80%) |
| Náročnost projektu (Index) | 3 |
| Počet commitů | 5 |
| Změněné soubory | 3 |
| Počet přid./odeb. řádků kódu | 77 |
Komentář a zpětná vazba od AI
Zde je vyhodnocení práce studenta na projektu "Snake Game" za uplynulý týden:
1. Smysluplnost popisů u commitů [3 body]:
Splněno. Commity jsou jasné, stručné a popisují konkrétní činnost (refaktoring, oprava odsazení, formátování data). Student používá angličtinu, což je v programování dobrou praxí.
2. Smysluplnost komentářů v kódu [5 bodů]:
Student do kódu doplnil velké množství vysvětlujících komentářů v češtině. To pomáhá pochopit, že rozumí tomu, co dělají jednotlivé části knihovny Pygame (např. clock.tick, blit, event.get). Bod strhávám za to, že některé komentáře jsou až příliš triviální (např. „start hry“ u funkce main), zatímco u složitější logiky (např. výpočet kolize) by mohly být techničtější.
3. Kvalita a srozumitelnost dokumentace a struktura repozitáře [2 body]:
Splněno. Projekt má vlastní složku Snake_game, soubory jsou logicky pojmenovány. Dokumentace Projekt.md přehledně mapuje progres úkolů pomocí tabulky, což chválím.
4. Logika řešení a přemýšlení studenta v Pythonu [6 bodů]:
Student prokázal schopnost pracovat s poli (seznam souřadnic hada), slovníky (směry pohybu) a herní smyčkou. Implementace "power-upu" a zvyšování úrovně obtížnosti (přidávání překážek a zrychlování) svědčí o dobrém pokroku.
Při posledním refaktoringu se však student dopustil několika logických chyb a překlepů, které by způsobily pád programu:
* Ve funkci game_over se student pokouší volat funkci fmain(), která v kódu neexistuje (má tam být main()).
* V sekci pro power-upy došlo k chybě v odsazení: if power and head == power: je odsazeno uvnitř bloku, který se vykoná jen jednou za 200 ticků při spawnu, takže hráč by musel být na stejném políčku přesně v momentě vzniku, aby ho sebral.
* Na konci souboru je nesmyslně zdvojená a špatně odsazená podmínka if name == "main": if name == "main": main().
* Volání main_game() v závěru je také chybný název, funkce se jmenuje main().
Celkem získáno bodů: [16 / 80%] ze 20 možných
DIFFICULTY_INDEX: [3]
Kontrolní otázka k obhajobě
Všiml jsem si, že v aktuální verzi kódu voláš v sekci Game Over funkci
fmain()a na konci souboru funkcimain_game()– kde přesně jsou tyto dvě funkce v tvém kódu definovány?