Úloha 098: Generátor bludiště v SVG formátu

Úkolem je implementovat generátor jednoduchého 2D bludiště v SVG formátu. Vstupem bude velikost bludiště (počet buněk vodorovně a svisle) a pozice začátku a konce cesty.

Maze

Inspirace

Přehled několika algoritmů na automatické generování bludiště. Použijte cokoli, co bude dávat uspokojivé výsledky z hlediska obtížnosti. Můžete samozřejmě vymyslet vlastní algoritmus.

Základ

Jako základ použijte projekt 098svg z repository grcis (GIT). Je připravena jednoduchá konzolová aplikace, která umí číst parametry z příkazové řádky nebo ze zadaného textového konfiguračního souboru. Po spuštění vygeneruje výstupní SVG nebo HTML soubor, ten si poté můžete prohlédnout ve Vašem oblíbeném WWW prohlížeči (vyzkoušeno v Chrome, Edge).

Detaily

Bludiště je pravoúhlé a jeho základem je pravidelná 2D mřížka, jejíž rozměry (počet sloupců a řádek) jsou zadávány při spuštění v konfiguraci. Každé rozhraní mezi dvěma sousedními buňkami je buď prázdné (je možno projít) nebo je tam zeď. Na obvodu celého bludiště je souvislá zeď.

Počáteční a cílová buňka se zadávají na vstupu, jednoduše pomocí celočíselných souřadnic [x,y]. Tyto dva významné body musíte na výstupu zvýraznit. Můžete dovolit i režim náhodného generování počátečního a koncového bodu (za pomoci náhodného generátoru).

Dalším zajímavým rozšířením by mohla být na vstupu zadávaná obtížnost bludiště. Detaily nechám na Vaší invenci (dostanete za to body navíc), připomínám, že ne všechny klasické algoritmy umějí s parametrem obtížnosti pracovat.

Co odevzdat

Zdrojový soubor Program.cs. Do proměnné CmdOptions.name doplňte své jméno.
Doplňte dokumentaci, které parametry jste implementovali a jaké mohou mít hodnoty.
Přiložte aspoň jeden konfigurační soubor.

Termín

Odevzdat do: 13. 11. 2022

Body

Základ: 9 bodů (rozumně vypadající bludiště podle parametrů zadaných v konfiguraci, zvýraznění vstupního a výstupního pole),
Bonusy (1 až 7 bodů):
 až 2 body za smysluplnou definici obtížnosti bludiště (uvedenou v dokumentaci, třeba formou poznámky v konfiguračním souboru),
 až 2 body za fungující implementaci (parametr) obtížnosti bludiště,
 až 2 body za použití jiné topologie (šestiúhelníková nebo trojúhelníková síť...),
 případné další body navíc za pěkné programové řešení, invenci...

Projekt

Visual Studio projekt: 098svg

Zdrojový soubor

Modifikujte a odevzdejte soubor: Program.cs, můžete přiložit několik konfiguračních souborů.
Zdokumentujte použité konfigurační parametry.
V proměnné CmdOptions.name opravte své jméno!


Copyright (C) 2017-2022 J.Pelikán, last change: 2022-10-19 22:14:17 +0200 (Wed, 19 Oct 2022)