P026

Oblasti

Obecné informace

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.

Křížení

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.

Popis programu

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")

Soubory ke stažení

Zde naleznete odkazy na soubory:
Oblasti.zip - Binární soubor pro platformu Win32 s podporou OpenGL
Oblasti_src.zip - Zdrojové kódy aplikace

Valid HTML 4.0!     Obsah  |  Zpět na fakultní stránku