Kontrolní otázky od AI

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

📁 Archiv-2026
Zpět

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


Student: adeno

Proč by se na obrazovce nikdy nevykreslil nápis „YOU WIN!“ nebo „YOU LOSE!“, kdybys v game_loop zavolal funkci draw() ještě před funkcí handle_base_damage()?


Student: Bizon

V logice pohybu věže máš v bloku else příkaz break až za řádkem moves.append((nr, nc)) – jak by se změnily možnosti věže na šachovnici, kdybys tento break přesunul o jeden řádek výš, tedy před to přidání tahu do seznamu?


Student: damykk

Proč v dokumentaci i v chybové hlášce u překladače trváš na instalaci konkrétní verze googletrans==4.0.0-rc1 a co přesně by se stalo, kdybych si místo ní nainstaloval běžnou stabilní verzi příkazem pip install googletrans?


Student: drobek

Vysvětli mi, proč v bloku except odchytáváš kromě ValueError i IndexError – ve kterém konkrétním momentě by k této chybě v tvém kódu došlo a proč ji neošetřuješ raději pomocí podmínky if hned po zadání souřadnic?


Student: ilou

Tvůj červený podklad pro zdraví má pevnou šířku 246 pixelů, ale léčení v kódu zastavuješ na hodnotě 167 – dokázal bys mi vysvětlit, proč jsi zvolil právě tato dvě odlišná čísla a jak bys kód upravil, aby zelený ukazatel při plném zdraví přesně vyplnil celou délku toho červeného obdélníku?


Student: ILuvCode

V režimech 2 a 3 při přidávání bloků pomocí metody add odebíráš souřadnici ze sady Unsafe Blocks, ale co se stane, pokud na daném místě už existuje blok druhé barvy (např. žlutý při přidávání modrého), a jakou konkrétní odměnu v takovém případě želva na tomto políčku podle tvé funkce get_reward dostane?


Student: Jarmil

Všiml jsem si, že v aktuální verzi kódu voláš v sekci Game Over funkci fmain() a na konci souboru funkci main_game() – kde přesně jsou tyto dvě funkce v tvém kódu definovány?


Student: Katana

V metodě play_turn u Člověče, nezlob se používáš blok try-except pro ošetření vstupu; co se v aktuální implementaci stane s hodnotou, kterou hráč hodil na kostce, pokud zadá neplatný vstup (např. písmeno), a jak bys kód upravil, aby kvůli takovému překlepu hráč o svůj tah nepřišel?


Student: kejousek

Proč jsi v poslední úpravě přidal do podmínky pro kliknutí event.button == 1 a jak by se hra chovala, kdybys tuto část vynechal a nechal tam pouze kontrolu kolize button_rect.collidepoint?


Student: kumor

V projektu Guitar App zmiňuješ použití kosinové podobnosti pro rozpoznávání akordů – mohl bys mi vysvětlit, proč jsi zvolil právě tuto metriku pro porovnávání chromatogramů a jak tvůj kód technicky řeší situaci, kdy mikrofon zachytí šum, který neodpovídá žádné z definovaných šablon akordů?


Student: Litr

V komentáři u vinětace uvádíš, že střed má být světlejší a okraje tmavé, ale tvá matematická implementace proměnných alpha a ew v cyklu vytváří přesný opak – mohl bys mi vysvětlit, proč tvůj kód v aktuálním stavu generuje tmavý střed, a co konkrétně bys v těch dvou výpočtech změnil, aby okraje byly skutečně ty nejtmavší?


Student: Luros

V dokumentaci k chatbotu uvádíš, že si aplikace pamatuje celou historii konverzace, ale ve tvé funkci posli_zpravu vidím, že do seznamu historie přidáváš pouze zprávu od uživatele – jakým způsobem tedy zajistíš, aby AI při příští otázce věděla, co ti odpověděla v předchozím kroku?


Student: Maximistr

Mohl bys mi vysvětlit, proč ve funkci turn v souboru ukol2.py používáš při vyhodnocování herních kombinací v cyklu for x in range(6) uvnitř formátovacího řetězce proměnnou value místo řídicí proměnné x, a jaký konkrétní dopad to má na to, co se v tuto chvíli doopravdy započítá do proměnných postupka, duos nebo general?


Student: Mendys

V dokumentaci uvádíš normy ISO 7810 i 7811, ale v rozhraní Ppmain.py odkazuješ jen na jednu z nich – mohl bys vysvětlit toto rozhodnutí a zároveň popsat, co přesně v aplikaci zajišťuje metoda setOpenExternalLinks(True)?


Student: NahrazenoAI

Vysvětli mi, co přesně by se v chování tvého programu změnilo, pokud by uživatel zadal neplatný vstup (např. překlep) a v kódu by u této kontroly chyběl příkaz continue?


Student: Nvm_Sorry

Všiml jsem si, že v cyklu pro parsování mapy vytváříš pro zdi (W) a zamčené zdi (L) objekty pygame.Rect, ale pro klíč (K) ukládáš do seznamu items_on_ground slovník se souřadnicemi item_x a item_y – jaký je k tomu konkrétní důvod a jak jsi matematicky zajistil, aby se klíč objevil přesně uprostřed políčka místo v jeho levém horním rohu?


Student: Paprikon34

Vysvětli, proč jsi v metodě Book::fromJson použil pro načítání dat metodu .value() namísto operátoru [] a co konkrétně by se stalo při běhu tvého programu, kdyby v načítaném JSON souboru u některé knihy zcela chyběl klíč is_available?


Student: Přezdívka

Vysvětli, proč ve funkci draw_character_sprite vykresluješ „zadní ruku“ (arm1_y) ještě před samotným tělem, zatímco „přední ruku“ (arm2_y) až na úplném konci, a u které konkrétní postavy a z jakého důvodu je v této funkci podmínkou potlačeno vykreslení úst?


Student: TheReader

Proč jsi u třídy .user-prof zvolil kombinaci position: absolute s fixním margin-right: 360px a jaký konkrétní problém s flexboxem v right-nav jsi se tímto „hackem“ snažil vyřešit?


Student: Titan

V metodě open_settings používáš pro výběr jazyka pomocnou proměnnou tk.StringVar, ale u posuvníku font_size_scale získáváš hodnotu pomocí .get() přímo z widgetu – mohl bys mi vysvětlit, proč u OptionMenu tu pomocnou proměnnou nutně potřebuješ, zatímco u Scale ses bez ní obešel?


Student: virtualAI

V metodě draw_board provádíš u výpočtu pozice figurky operaci rank = 7 - rank bez ohledu na to, jestli je self.flip_board True nebo False – mohl bys vysvětlit, proč je tato transformace nutná i v základním (neotočeném) zobrazení?


Student: Vojcinn

Všiml jsem si, že v nově přidané funkci equipment_manager nabízíš hráči seznam všech zbraní pomocí list(WEAPONS.keys()) – jak máš v kódu aktuálně ošetřeno, aby si hráč mohl vybrat pouze ty zbraně, které už si dříve skutečně zakoupil v obchodě?


Student: Vozuch

V souboru tic_tac_toe.py máš příkaz pygame.display.flip() umístěný až za koncem cyklu while bezi – mohl bys vysvětlit, jak se to po spuštění programu konkrétně projeví na grafickém výstupu okna a co bys musel udělat, aby hráč viděl změny v reálném čase?