Logická hra formule v C#

C# .NET Pro pokročilé 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

Program byl vytvořen v roce 2012.

 

Stáhnout

Staženo 354x (84.54 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

  Aktivity (1)

Program pro vás napsal Michael Baitler
Avatar

Jak se ti líbí článek?
Celkem (1 hlasů) :
55555


 


Miniatura
Všechny články v sekci
C# - Pro pokročilé
Miniatura
Následující článek
Regulární výrazy v C# .NET

 

 

Komentáře

Avatar
ejoty
Člen
Avatar
ejoty:

zajimavá prkotina, ale chtělo by to ošetřit konec hráče, který již dorazil do cíle. "neustále musí klapat na cíl, i když je tam několik kol a ostatní hráči teprve dojíždějí" až na tuhle drobnost velice chválím, ještě bych změnil pozadí v editoru tratí, a možnost úpravy již uložených tratí

 
Odpovědět 8.12.2012 16:18
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.