Video-tutoriál podrobně popisující postup, jak v .NET C# Windows forms naprogramovat klasickou hru Piškvorky, včetně umělé inteligence protihráče a základních možností nastavení.
Části
- Mřížka (10:07)
- Hrací pole v paměti (5:11)
- Hrací kameny (11:36)
- Separace výpočtu (5:28)
- Počet v řadě (7:51)
- Výhra (11:46)
- Remíza (3:11)
Počet řad - matematický dodatek (8:55) - Hodnota políček (7:55)
- Umělá inteligence (5:33)
- Poslední tah (4:41)
- Vítězná řada (9:58)
- Start hry (4:56)
- Nastavení vzhledu - design (8:30)
- Nastavení vzhledu - kód (5:23)
- Nastavení hry ()
- Ukládání nastaveni (10:24)
- O programu (3:13)
1 - Mřížka
V 1. díle vytvoříme komponentu, která bude základem pro hrací plochu a zobrazovat mřížku. Video-tutoriál podrobně popisující postup, jak v .NET C# Windows forms naprogramovat klasickou hru Piškvorky.
2 - Hrací pole v paměti
Ve 2. díle připravíme dvourozměrné pole, ve kterém se do paměti bude ukládat obsah jednotlivých herních políček. Video-tutoriál podrobně popisující postup, jak v .NET C# Windows forms naprogramovat klasickou hru Piškvorky.
3 - Hrací kameny
Ve 3. díle vytvoříme a zprovozníme metody pro vykreslování a umísťování hracích kamenů (křížků a koleček) na hrací plochu.
4 - Separace výpočtu
Ve 4. díle extrahujeme metody pro výpočty do zvláštní třídy, aby byl kód přehlednější a následná práce s ním snazší.
5 - Počet v řadě
Ve 4. díle vytvoříme pomocné výčty (enum) a připravíme strukturovanou proměnnou pro evidenci kolik je na kterém políčku v kterém směru kterých hracích kamenů v započítatelném dosahu.
6 - Výhra
V 6. díle sestavíme a zprovozníme metodu, která bude detekovat, jestli během hry nedošlo k výhře některého z hráčů. Pokud ano, hra bude ukončena a výhra oznámena.
7 - Remíza
V 7. díle rozšíříme hru o detekci remízy, tj. identifikaci stavu, od kterého již žádný z hráčů nemůže vyhrát a to dříve, než je zaplněno celé pole. Způsob tohoto výpočtu bude vysvětlen v následujícím matematickém dodatku.
Počet řad - matematický dodatek
Matematický dodatek k 7. dílu, který formou prezentace názorně vysvětluje odvození vzorce pro výpočet počtu možných vítězných řad na čtvercové hrací ploše ve hře piškvorky.
8 - Hodnota políček
V 8. části připravíme datové položky pro výpočty hodnot jednotlivých políček pro hráče a metodu, která do nich bude tyto hodnoty po každém tahu vypočítávat. Na jejich základě pak bude možné v každém tahu určit, které ze zbývajících políček je pro každého z hráčů nejcenější.
9 - Umělá inteligence
V 9. díle konečně uvedeme do provozu umělou inteligenci protihráče (počítače). Ten prozatím bude hrát standardně za "kolečko" a uživatel za "křížek". Od této chvíle tedy bude možné si proti počítači zahrát plnohodnotnou hru, přičemž porazit jej nebude vůbec snadné!
10 - Poslední tah
V 10. části přidáme funkci zvýrazňování (podbarvení) posledního zabraného políčka, aby byl protihráčův tah vždy zřetelně patrný.
11 - Vítězná řada
V 11. části přidáme funkci zvýrazňování (podbarvení) celé vítězné řady (pěti hracích kamenů), aby byla hned na první pohled identifikovatelná.
12 - Start hry
Ve 12. díle přidáme funkci pro znovuzahájení hry. Nebude tak již nezbytné pro novou hru program vypínat a znovu zapínat, ale bude stačit kliknout na příslušnou položku v menu.
13 - Nastavení vzhledu - design
Ve 13. díle vytvoříme design formuláře pro nastavení vzhledu hry. Pro výběr barvy vytvoříme vlastní uživatelskou komponentu, kterou pak opakovaně použijeme.
14 - Nastavení vzhledu - kód
Ve 14. díle do formuláře pro nastavení vzhledu hry přidáme kód pro zpřístupnění hodnot nastavovaných vlastností ostatním třídám. Tyto vlastnosti pak použijeme pro předávání hodnot mezi formulářem pro nastavení a herní komponentou PlayBoard.
15 - Nastavení hry
V 15. díle přidáme další formulář pro nastavení, tentokrát vlastností hry. Bude tak třeba možné zvolit, chcete-li hrát proti počítači nebo proti jinému hráči.
16 - Ukládání nastaveni
V 16. díle napíšeme kód, který bude veškeré nastavení ukládat do souboru a při příštím spuštění jej znovu načte.
17 - O programu
V posledním 17. díle doladíme program pro distribuci - opatříme jej ikonou a přidáme informace o programu a jeho autorovi.