Katana
Období: Týden 14/2026 (od 05.04.) Skupina: tria URL: https://github.com/maximjavorsky-code/Katana.git
1. Splnění základních podmínek
| Podmínka | Status |
|---|---|
| Alespoň 3 commity v daném týdnu | ❌ NESPLNĚNO |
| Rozestup alespoň 12h mezi 3 commity | ❌ NESPLNĚNO |
| Projektová dokumentace (README, projekt.md) | ✅ SPLNĚNO |
2. Přehled commitů
- 2026-04-08 06:57: Přidán základ projektu Pac-Man a aktualizován README
3. Výsledky AI analýzy kódu
| Metrika | Hodnota |
|---|---|
| Celkové body (AI) | 18 / 20 b. (90%) |
| Náročnost projektu (Index) | 3 |
| Počet commitů | 1 |
| Změněné soubory | 3 |
| Počet přid./odeb. řádků kódu | 142 |
Komentář a zpětná vazba od AI
Dobrý den, jako tvůj asistent jsem prošel tvou práci na projektu Pac-Man za uplynulý týden. Je vidět, že jsi udělal velký kus práce při přechodu na grafickou knihovnu Pygame a začal jsi efektivně využívat objektově orientované programování.
Zde je tvé podrobné hodnocení:
1. Smysluplnost popisů u commitů [2 body]:
V tomto týdnu jsi vytvořil pouze jeden commit. I když je jeho popis ("Přidán základ projektu Pac-Man a aktualizován README") věcně správný a jasně říká, co se změnilo, u takto rozsáhlého kódu (přes 120 řádků nového kódu a dokumentace) by bylo vhodnější rozdělit práci do více menších kroků (např. inicializace okna, vytvoření tříd, implementace kolizí). Pomůže ti to v budoucnu při hledání chyb.
2. Smysluplnost komentářů v kódu [6 bodů]:
V této oblasti jsi odvedl skvělou práci. Kód obsahuje srozumitelné docstringy u metod i tříd a logické bloky v hlavní smyčce jsou přehledně odděleny komentáři. Pomáhá to v orientaci, co která část Pygame logiky zrovna vykonává.
3. Kvalita a srozumitelnost dokumentace a struktura repozitáře [2 body]:
Struktura repozitáře je příkladná – každý projekt má svou složku, což chválím. Dokumentace v PacMan_projekt.md i aktualizace hlavního README.md jsou v naprostém pořádku.
Vytknutí: V adresáři /Sachy/ máš verzované složky __pycache__. Tyto soubory do repozitáře nepatří, příště je nezahrnuj do commitu (ideálně pomocí souboru .gitignore). V aktuálním projektu Pac-Man jsi se už této chyby vyvaroval.
4. Logika řešení a přemýšlení studenta v Pythonu [8 bodů]:
Implementace tříd Player, Enemy a Pellet je logická a správná. Oceňuji bezpečné odstraňování prvků ze seznamu pomocí řezu pellets[:], což je častá začátečnická chyba. Program je funkční a splňuje definovaný cíl.
Mám však dvě připomínky k logice:
1. Pozice objektů: V inicializaci tříd používáš self.rect = pygame.Rect(random.randint(0, WIDTH), random.randint(0, HEIGHT), 20, 20) <span style='color: red;'>zde je chyba</span>. Pokud náhodné číslo vybere hodnotu blízkou WIDTH (600), postavička o velikosti 20 pixelů se vykreslí částečně nebo úplně mimo obrazovku. Správně by mělo být WIDTH - 20.
2. Pohyb nepřítele: Aktuální "náhodný pohyb" způsobuje, že se duch spíše jen třepe na místě, protože v každém snímku (60x za sekundu) změní směr. Doporučuji v budoucnu přidat logiku, kde si duch vybere směr a drží se ho po určitý počet snímků nebo pixelů.
Celkem získáno bodů: [18 / 90%] ze 20 možných
DIFFICULTY_INDEX: [3]
Kontrolní otázka k obhajobě
V hlavní herní smyčce procházíš seznam bodů pomocí
for pellet in pellets[:]– k čemu přesně tam slouží ten zápis[:]a co konkrétně by se v programu stalo (nebo mohlo stát), kdybys tyto dvě tečky a závorky smazal?