Logická hra formule v C#
Hra formule se hrává ve více hráčích na čtverečkovaném papíře. Program simuluje tuto hru včetně umělé inteligence Zdrojové kódy v C# .NET ke stažení.
Pravidla hry
Máme čtverečkovaný papír, na který nakreslíme rozumně širokou trať se startem, cílem a několika zatáčkami. Na start umístíme několik autíček. Jízda sama vypadá tak, že si vybereme průsečík čar, kam se chceme dostat, přičemž platí pravidlo, že výchozím bodem je ten, na který bychom se dostali, kdybychom opakovali předchozí tah beze změny. My si ovšem můžeme vybrat některý z vedlejších průsečíků, čímž se nám upraví i pozice dalšího výchozího bodu, tudíž můžeme vybrat kupříkladu následující zatáčku. Každý tah je tedy složen ze dvou kroků, opakování předchozího tahu a rozhodnutí zda zůstat na takovém průsečíku, či se přemístit o jeden průsečík v libovolném směru. Vítězem se stává hráč, který první projede přes cílovou čáru. Pokud hráč vyjede z dráhy, hra pro nej končí. První tah nemá svého předchůdce, není tedy možné provést první fázi tahu(kopii tahu předchozího) a tak se rovnou přejde do druhé fáze tahu, tedy posun na nejbližší průsečík. Na jednom průsečíku se může nacházet jen jedno autíčko v jeden okamžik. Pokud jsou jinými hráči obsazena všechna políčka na které se smí hráč přemístit, musí zůstat v tomto kole stát. Dráhy autíček se mohou křížit a je možné "přeskakovat" tedy přejet přes políčko, které je již obsazeno.
Program je rozdělen na několik logických celků.
- Grafické rozhraní pro uživatele. Hrací plán bude buď vybrán z již
uložených nebo si uživatel nakreslí vlastní v editoru.
- Editor k nakreslení hracího plánu s možnoszí uložení a kontrolou, zda
je možné ze startu dojet do cíle. Uživatel nejprve zvolí velikost hracího
plánu, pak vybere komponentu (cíl, start, dráha) a klikáním na průsečíky
nakreslí hrací plán.
- Kontrola, zda se uživatel nesnaží zahrát nepovolený tah.
- Algoritmus, který se bude snažit najít nejkratší cestu k cíli, podle
které se bude pohybovat hráč počítač. Rekurzivně se bude volat metoda,
která bude podle vstupních parametrů (souřadnice aktuálního průsečíku,
směr a rychlost) volat sama sebe pro každý průsečík na který je možné
se dostat tak dlouho, dokud se nedostane k cíli. Při každém průchodu se
zvýší hodnota čítače a pokud nově nalezené řešení bude mít nižší
hodnotu, původní řešení bude přepsáno,jinak se nově nalezené řešení
zahodí. Nakonec v čítači bude nejnižší počet tahů pro překonání
cíle. Čítačů bude děvět, pro každý první průsečík (prvního
následujícího tahu) a bude vybrán ten průsečík, ke kterému náleží
čítač s nejmenší hodnotou.
Galerie

Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 386x (84.54 kB)
Aplikace je včetně zdrojových kódů v jazyce C#