Pripravil som dve riesenie. Prve riesenie je viac kompromisne, rozhodol som sa,
ze nestoji za to mat abstraktneho hraca a implementovat ho UIHracom a SkutocnymHracom,
napriek tomu, ze z hladiska OO principov je to spravne. V druhom vzoraku naznacujem
ako toto urobit + zaroven lepsie oddelujem user interface od logiky. Druhy vzorak nie 
je dotiahnuty, vsimajte si najma triedu Player a interface GameInterface.

Moj program je obycajna desktop aplikacia s dvoma komponentami : user interface
a samotna logika programu. User interace modifikuje stav komponentu logika programu.
Komponenty spolu 



1. Ak chcete nico nadizajnovat, musite maj jasno v architekture aplikacie. Vo vacsine 
domacich uloh som netusil k akej architekture sa navrh viaze.
2. Je dobry napad oddelit user interface od logiky programu. Minimalne je dobry napad ked
user interface modifikuje vnutorny napad iba pomocou funkcii/metod specifikovanych
v nejakom interfaci(och). Obcas je vsak prakticke, povolit UI citat vnutorny stav logiky
(prvy vzorak). V druhom vzoraku oddelujem aj zobrazovanie, co je z hladiska OO principov
lepsie, pre moj program to vsak pokladam za mierne neprakticke. 
3. Chceme vediet pocitacoveho hraca zastavitpocas vypoctu. Ako dali by sa piskvorky s undo
nadizajnovat aj bez takohoto feature, ale predpokladam, ze kazdy pouzivatel by to chcel takto.

