Kontrolní otázky od AI

Týden 14/2026 (od 05.04.) – Doplňující otázky k obhajobě.

📁 Archiv-2026
Zpět

Kontrolní otázky od AI – Týden 14/2026 (od 05.04.)


Student: adeno

Vysvětli mi, proč je pro správné odstraňování jednotek ve funkci handle_combat naprosto nezbytné použít zápis units[:] = ... místo obyčejného units = ... a co by se v průběhu hry dělo s jednotkami na obrazovce, kdybys ty dvojtečky vynechal?


Student: damykk

Proč jsi pro cestu k datovému souboru použil konstrukci Path(__file__).with_suffix('.json') a co konkrétního se stane s názvem ukládaného JSON souboru, pokud svůj skript přejmenuješ z todolist.py na seznam_ukolu.py?


Student: drobek

V tabulce v README jsi aktualizoval datum u projektu „piškvorky“ pod číslem 5, ale v repozitáři máš složky jen do čísla 03 – můžeš mi vysvětlit, proč se číslování v tabulce neshoduje s názvy tvých složek a kde se vlastně nachází kód k těmto piškvorkám?


Student: Gajdy_wdym

V commitu uvádíš, že jsi „nerfnul“ ceny prvků (např. u Scandia jsi ji snížil z 20 000 na 15 000), což je v herní terminologii rozporuplné, tak mi vysvětli, jaký má tato změna skutečný dopad na hratelnost a proč jsi musel u centrování textu v menu nově použít matematický vzorec s get_width() // 2 místo původního fixního odsazení?


Student: ilou

K čemu přesně v aktuální verzi kódu slouží maska COIN_MASK nastavená v metodě setFromCollideMask u objektu Coin, a jak by se změnilo chování hry, kdybys tento konkrétní řádek odstranil?


Student: Jarmil

Mohl bys mi vysvětlit, jaký konkrétní problém se zobrazením tabulky v README jsi řešil těmi dvěma po sobě jdoucími commity, ve kterých jsi pouze měnil počet mezer u data začátku, a proč se toto datum v dokumentaci liší o měsíc od času tvých úprav?


Student: Katana

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?


Student: kejousek

V metodě kontrola_vyhry používáš pro kontrolu diagonály směrem doleva výraz all(self.platno[y+i][x-i] == hrac for i in range(5)) – vysvětli mi, proč u souřadnice x hodnotu i odečítáš, zatímco u y ji přičítáš, a před čím přesně tě v tomto případě chrání podmínka x - 4 >= 0?


Student: Litr

Všiml jsem si, že jsi upravil funkci draw_cube_with_line tak, aby přijímala volitelné argumenty draw_x a draw_y, ale v celém kódu (ve stavech PLAYING i GAMEOVER) ji stále voláš bez nich – můžeš mi vysvětlit, k čemu tam tyto parametry tedy jsou a jakou konkrétní logiku zajišťuje ta podmínka if draw_x is None na začátku funkce?


Student: Luros

V dokumentaci uvádíš, že vyhledávání nově spouštíš pomocí pole.bind("<Return>", po_kliknuti) – jak jsi musel upravit definici (hlavičku) funkce po_kliknuti, aby korektně zpracovala objekt události, který jí tato metoda automaticky předává?


Student: Maximistr

V metodě render_particles provádíš normalizaci proměnné angle_diff pomocí dvou while cyklů v rozsahu od -π do π; dokázal bys vysvětlit, v jaké konkrétní situaci by se bez této úpravy částice zobrazovaly chybně a jak přesně by se ten vizuální glitch na obrazovce projevoval?


Student: Mendys

V metodě go_to třídy ViewCubeHUD sčítáš coords[1] + ry_offset. Proč jsi pro boční pohledy (tlačítka L a R) zvolil v matici self.views hodnotu rotace 35 stupňů místo kolmých 90 stupňů, a jak se tato hodnota chová v kombinaci s offsetem 180 stupňů při aktivním režimu „BACK“?


Student: NahrazenoAI

Kdybys ve své funkci vygeneruj_pribeh smazal klíčové slovo return, co přesně by se po spuštění programu vypsalo v konzoli na místě proměnné novy_pribeh?


Student: Nvm_Sorry

Vysvětli mi, proč při vytváření cube_rect pro kolize přičítáš k souřadnicím new_x a new_y hodnotu hitbox_offset a co přesně by se stalo s pozicí hitboxu vůči vykreslené textuře hráče, kdybys toto přičtení vynechal?


Student: Paprikon34

V rámci tvé implementace funkce calculate_weaknesses v souboru fetch_pokedata.py používáš kumulativní násobení (např. *= 2.0 nebo *= 0.0) – mohl bys vysvětlit, k jakému výslednému násobku dojde u Pokémona se dvěma typy, pokud je jeden typ na útok velmi slabý (2.0x) a druhý je proti němu zcela imunní (0.0x), a proč je tento výsledek v kontextu herní mechaniky správně?


Student: Přezdívka

Proč u vykreslování polygonu srpku používáš pro vnitřní body metodu reverse() (respektive insert(0, ...)), a jak by výsledný tvar vypadal, kdybys oba seznamy bodů (outer a inner) spojil bez změny jejich pořadí?


Student: TheReader

V souboru ffmpeg_conv.py máš u textového pole cmd_preview nastaven stav tk.DISABLED, který uživateli brání v úpravách – jakým konkrétním způsobem v metodě update_cmd_preview tento zákaz obcházíš, aby se v poli mohl aktualizovat vygenerovaný příkaz?


Student: Titan

Proč jsi v metodě tic_tac_toe při vytváření tlačítek v cyklu použil v anonymní funkci (lambda) parametry r=i, c=j a co by se stalo, kdybys tam napsal jen command=lambda: self.make_move(i, j, ttt_window)?


Student: virtualAI

V metodě hrej_zvuk u Ultra Snaka generuješ tón pomocí math.sin a ukládáš ho do array.array typu 'h'. Co přesně v tomto vzorci ovlivňuje konstanta 16383 a proč by nastal problém, kdybys tuto hodnotu zvýšil nad 32767?


Student: Vozuch

V souboru quiz.py máš v hlavní smyčce řádek if vysledek is True: skore += 1 – mohl bys mi vysvětlit, proč toto umístění způsobuje, že skóre během dvousekundové pauzy před další otázkou nekontrolovaně narůstá o stovky bodů, a jak bys tento logický problém opravil?