Pamatujete si ještě na doby, kdy jsme hrávali hry na čtverečkovaném papíře? Hra Oblasti (státy, hranice,...) je jednou z takovýchto her. Její pravidla jsou jednoduchá - máte za úkol obsadit co nejvíce hrací plochy. Toho docílíte jednak umístěním "kamene" na hrací plochu, ale hlavně uzavřením oblasti na hrací ploše, čímž se Vám automaticky vyplní i vnitřek této oblasti. Další zajímavou věcí je, že pokud se v oblasti, kterou právě uzavíráte nachází soupeř, přechází jeho obsazené políčka pod vaši zprávu.
Hrací kameny se umísťují do místa křížení pomocných čar. Pokud umístíte dva kameny blízko sebe, spojí se navzájem hranicí. Hranice se mohou libovolně překrývat, tj. je možná např. následující situace:
Hra Oblasti umožňuje hráči zahrát si proti počítači a otestovat svoje možnosti. Hraje se na deset výher, poté se automaticky začne počítat znovu. Po každém zakončeném kole se musí zvolit "Nová hra" z menu aplikace, čímž se připraví hrací plocha na novou hru.
Aplikace byla vyvíjena v programovacím jazyce C++, jako vizuálizační prostředí bylo zvoleno OpenGL. Zpočátku jsme se snažili o nezávislost aplikace na operačním systému, ale nakonec jsme odladili aplikaci pro platformu Win32.
Jako algoritmus pro vyhodnocování tahů byl použit algoritmus Alpha Beta (viz P016 - Umělá inteligence I). Testují se dva tahy dopředu v okolí již umístěných bodů. Vyhodnocují se dvě taktiky zároveň - ofenzivní a defenzivní. Jejich výsledky se porovnají a zvolí se nejlepší z nich.
Algoritmus Alpha Beta silně závisí na vyhodnocovací funkci. Použitá heuristická funkce počítá s:
Výsledná hodnota heuristické funkce se tudíž počítá jako:
Počet kamenů hráče + "bonusy" - (Počet kamenů počítače +"bonusy")