TheReader
Období: Týden 11/2026 (od 15.03.) Skupina: tria
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) | ✅ SPLNĚNO |
Vypočtený Index za tento týden: 368
Týdenní Index Náročnosti dodaných skriptů (1-5): 4
2. Kvantitativní přehled úprav
| Metrika | Hodnota |
|---|---|
| Počet všech commitů | 5 |
| Počet změněných souborů | 9 |
| Počet přid./odeb. řádků kódů | 408 |
Přehled commitů
- 2026-03-16 07:42: added a settings menu and button to snake.py, added a save naming window to snake.py. setup gd.py to show a window.
- 2026-03-16 09:13: added a start button to GD.py
- 2026-03-16 09:26: added a window to kalkulacky.py
- 2026-03-20 18:36: fixed some code in snake.py, added a character to GD.py and updated its projekt.md
- 2026-03-21 18:17: added an ffmpeg video converter and its documentation
3. Hodnocení asistentem AI (Logika a úsilí)
Zde je hodnocení práce studenta za uplynulý týden:
1. Smysluplnost popisů u commitů [3 body]
Popisy commitů jsou velmi dobré a věcné. Student jasně popisuje, co v daném kroku vytvořil nebo opravil (např. přidání nastavení do hry Snake nebo implementace video konvertoru). Zprávy odpovídají provedeným změnám v kódu. Splněno: 3/3 body.
2. Smysluplnost komentářů v kódu [4 body]
V souboru ffmpeg_conv.py student používá základní komentáře pro rozdělení sekcí (UI Elements, Variables), což pomáhá v orientaci. Nicméně v samotné logice (např. u sestavování příkazu pro FFmpeg nebo u zpracování drag-and-drop) komentáře chybí. V souboru GD.py jsou některé řádky kódu pouze zakomentované, aniž by bylo vysvětleno proč. Největším nedostatkem je duplicita celého bloku kódu, která svědčí o nepozornosti při editaci.
Splněno: 4/6 bodů.
3. Kvalita a srozumitelnost dokumentace a struktura repozitáře [2 body]
Struktura repozitáře je příkladná. Každý projekt má svou vlastní složku (kalkulacka1, ffmpeg_conv, snake_game, GD), což přesně odpovídá zadání. Dokumentace k FFmpeg konvertoru je vynikající – obsahuje požadavky, návod k instalaci i ukázku volání příkazu. Dokumentace k ostatním projektům je dostatečná pro pochopení jejich funkčnosti.
Splněno: 2/2 body.
4. Logika řešení a přemýšlení studenta v Pythonu [7 bodů]
Student prokázal velký pokrok a odvahu při práci s externími knihovnami (tkinterdnd2, pygame) a systémovými procesy (subprocess). Projekt video konvertoru má vysoký "scope" a je funkčně bohatý.
V kódu se však vyskytují logické chyby a nedostatky:
* Duplicita: V souboru ffmpeg_conv.py je dvakrát pod sebou definována identická metoda on_drop.
* Platformní závislost: Použití os.startfile omezuje funkčnost programu pouze na Windows, ačkoliv dokumentace zmiňuje, že je pro ně program optimalizován, v Pythonu existují i cross-platform cesty.
* Event Handling: V GD.py je chyba v logice zpracování událostí.
Konkrétní chyby v kódu:
File: ffmpeg_conv/ffmpeg_conv.py
def on_drop(self, event):
file_path = event.data.strip('{}')
if os.path.isfile(file_path):
self.input_file.set(file_path)
# Suggest output file
base, ext = os.path.splitext(file_path)
self.output_file.set(base + "_converted.mp4")
else:
messagebox.showwarning("Warning", "Dropped item is not a file")
<span style='color: red;'>zde je chyba: Metoda on_drop je zde definována podruhé se zcela identickým obsahem, což je redundantní.</span>
def on_drop(self, event):
file_path = event.data.strip('{}')
if os.path.isfile(file_path):
self.input_file.set(file_path)
# Suggest output file
base, ext = os.path.splitext(file_path)
self.output_file.set(base + "_converted.mp4")
else:
messagebox.showwarning("Warning", "Dropped item is not a file")
File: GD/GD.py
if state == "game":
keys = pygame.key.get_pressed()
# ... (logika pohybu)
if back_button.is_clicked(event): <span style='color: red;'>zde je chyba: Proměnná 'event' není v tomto bloku definována. Kontrola kliknutí na tlačítko musí probíhat uvnitř cyklu 'for event in pygame.event.get():', jinak program selže na NameError nebo bude pracovat se zastaralou hodnotou.</span>
state = "menu"
Splněno: 7/9 bodů.
Celkem získáno bodů: [16 / 80%] z 20 možných
DIFFICULTY_INDEX: [4]