Logická hra formula v C #
Hra formula sa hráva vo viacerých hráčoch na štvorčekovom papieri. Program simuluje túto hru vrátane umelej inteligencie Zdrojové kódy v C# .NET k stiahnutiu.
Pravidlá hry
Máme štvorčekový papier, na ktorý nakreslíme rozumne širokú trať so štartom, cieľom a niekoľkými zákrutami. Na štart umiestnime niekoľko autíčok. Jazda sama vyzerá tak, že si vyberieme priesečník čiar, kam sa chceme dostať, pričom platí pravidlo, že východiskovým bodom je ten, na ktorý by sme sa dostali, keby sme opakovali predchádzajúce ťah bez zmeny. My si však môžeme vybrať niektorý z vedľajších priesečníkov, čím sa nám upraví aj pozície ďalšieho východzieho bodu, teda môžeme vybrať napríklad nasledujúce zákrutu. Každý ťah je teda zložený z dvoch krokov, opakovanie predchádzajúceho ťahu a rozhodnutia či zostať na takom priesečníku, či sa premiestniť o jeden priesečník v ľubovoľnom smere. Víťazom sa stáva hráč, ktorý prvý prejde cez cieľovú čiaru. Ak hráč vyjde z dráhy, hra pre naj končí. Prvý ťah nemá svojho predchodcu, nie je teda možné vykonať prvú fázu ťahu (kópiu ťahu predchádzajúceho) a tak sa rovno prejde do druhej fázy ťahu, teda posun na najbližšiu priesečník. Na jednom priesečníku sa môže nachádzať len jedno autíčko v jeden okamih. Ak sú inými hráčmi obsadené všetky políčka na ktorej sa smie hráč premiestniť, musí zostať v tomto kole stáť. Dráhy autíčok sa môžu krížiť a je možné "preskakovať" teda prejsť cez políčko, ktoré je už obsadené.
Program je rozdelený na niekoľko logických celkov.
- Grafické rozhranie pre používateľov. Hrací plán bude buď vybraný z
už uložených alebo si užívateľ nakreslí vlastné v editore.
- Editor k nakreslenie hracieho plánu s možnoszí uloženia a kontrolou, či je možné zo štartu dôjsť do cieľa. Užívateľ najprv zvolí veľkosť hracieho plánu, potom vyberie komponent (cieľ, štart, dráha) a klikaním na priesečníky nakreslí hrací plán.
- Kontrola, či sa užívateľ nesnaží zahrať nepovolený ťah.
- Algoritmus, ktorý sa bude snažiť nájsť najkratšiu cestu k cieľu, podľa ktorej sa bude pohybovať hráč počítač. Rekurzívne sa bude volať metóda, ktorá bude podľa vstupných parametrov (súradnice aktuálneho priesečníku, smer a rýchlosť) volať sama seba pre každý priesečník na ktorý je možné sa dostať tak dlho, kým sa nedostane k cieľu. Pri každom priechode sa zvýši hodnota počítadla a ak novo nájdené riešenie bude mať nižšiu hodnotu, pôvodné riešenie bude prepísané, inak sa novo nájdené riešenie zahodí. Nakoniec v počítadlu bude najnižší počet ťahov pre prekonanie cieľa. Čítačov bude deväť, pre každý prvý priesečník (prvého nasledujúceho ťahu) a bude vybraný ten priesečník, ku ktorému patrí čítač s najmenšou hodnotou.
Galéria
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 385x (84.54 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C#