Programování 2 - Informatici 22.04.2026 středa 29.09.2026 středa, pokračování dopracování: UML, SOLID, Návrhové vzory, Interface pro dnešek: Prohledávání stavového prostoru a přepis problému do pseudokódu a následný přepis pseudokódu do C# kódu (pseudokód nabízí dekompozici programu) Simulace Animláků - hlavním cílem dnešních cvičení je objektový návrh diskrétního simulátoru Animláků a jeho zápis (do UML diagramu) 1. Vymyslete, jak rozšířit třídu Animal na diskrétní simulaci (savana, zoo, ...) 2. Vytvořte návrh objektů a komunikačních interfaců (SOLID, UML) 3. Jakou volíme architekturu systému (model - view) 4. Návrh architektury vs návrh objektů (jaké objekty vs jak hierarchicky uspořádat a jak s tím souvisí interface; model "Animalů" vs model simulátoru) 10. Vše zapište a zakreslete do UML object diagramu: https://app.diagrams.net/?src=about https://plantuml.com/object-diagram 11. Naimplementujte template prioritní frontu pro diskretni simulaci (pomoci templatu) 13. Simulaci implementujte 17. Úlohu formulujte slovně zkusme ji zadat do vhodného llm Ke Grafovým algoritmům a prohledávání stavového prostoru 21. Mějme šachovnici, pozici startovního políčka a figurku (šachového koně). Úkolem je zjistit, zdali (a jak) lze ze startovního políčka a danou figurkou proskákat všechna políčka šachovnice za podmínky, že na každé políčko vstoupím právě jednou. https://ksvi.mff.cuni.cz/~topfer/ppt/A10%20prohledavani%20do%20hloubky.pdf - jak eviduji navštívená pole? (více způsobů: list navštívených polí, 2D list, ...) - vracím, True\False, že lze proskákat nebo bracím i kudy jsem proskákal? - změní se mi reprezentace navštívených polí? (idea je zkusit si přepis problému do pseudokódu a pak z pseudokódu do programu; ) 3.3 Napište lidský pseudokod algoritmu (tužka papír) 3.4 Napište pseudokód algoritmu do Vašeho IDE 3.5 A podle psedudokódu následně funkce, "nebojme se vetsi dekompozice" program nemusi (a nemel by byt) jeden velky "blob" v pseudokodu: "sloveso ... funkce, podstatne jmeno ... proměnna" 3.6 Program doprogramujte 27. Pro zadaný graf rozhodněte, zdali je graf bipartitní 31. Pro zadaný graf rozhodněte, zdali je graf silně souvislý