Ročníkový projekt ve 2. ročníku
Texty a slajdy
Multiplatformní GUI
toolkity GTK+ (a gtkmm), Qt a wxWidgets
– představení toolkitů,
architektura, widgety, i18n a l10n, překlad (kompilace)
(PDF; 419,4 kB)
,
ukázkové aplikace
Hello World
(GTK+, gtkmm, Qt, wxWidgets)
(C, C++ > tar.gz; 3,3 kB)
,
Drawing
(GTK+, zastaralé)
(C > tar.gz; 2,0 kB)
a
Desk
(GTK+, Qt)
(C, C++ > tar.gz; 9,7 kB)
Moje další požadavky
Programovací jazyk, platforma a technologie dle libosti, bez omezení (ovšem nemůžu poradit k něčemu, co neznám).
Průběh řešení (průběžné požadavky + udělené body):
Zimní semestr
-
První funkční konzolová verze hry: hrací deska, tahy,
lidští hráči, bez kontroly tahu podle pravidel – 5 bodů
-
Hra lib. hráčů (člověk, počítač) podle pravidel: kontrola
platnosti tahu, test konce hry, nastavení hráčů, náhodný
výběr tahu počítačového hráče – 5 bodů
-
„Inteligentní“ výběr tahu: ohodnocení desky,
algoritmus MiniMax/AlfaBeta, nápověda tahu, výběr blokuje
program – 10 bodů
Letní semestr
-
Neblokující výběr tahu: v samostatném vlákně, pozastavení
a zrušení výběru – 5 bodů
-
Uložení a načtení hry (desky, nastavení hráčů): do
textového souboru, historie tahů, undo/redo, zpětné
přehrání – 5 bodů
-
Hra s GUI: grafická deska, zadání tahu myší, menu,
nápověda apod. – 6 bodů
-
Doladění, robustnost – 2 body
-
Dokumentace – 2 body
Pro časově rozvržení těchto požadavků nejsou stanoveny žádné termíny, předpokládám průběžné kontrolní návštěvy v mých
konzultačních hodinách.
Požadavky na návrh řešení
-
oddělení implementací výkonné části (logika hry) a
prezentační části (UI) s možností
jednoduchého použití implementace výkonné části s jinou implementací prezentační
části
-
platformově nezávislá implementace výkonné části, např. formou sdílené knihovny
-
doporučení platformově nezávislé implementace prezentační části
(multiplatformní grafická knihovna, OpenGL, ...)
-
pro člověka čitelný vstupní a výstupní formát dat
nezávislý na použitých programových komponentách,
např. TXT, XML