Vytvořte konzolovou aplikaci, která:
-
Bludiště
- Načte bludiště definované v souboru
maze.dat
(viz příloha). - Bludiště se načte do paměti a vypíše na obrazovku (rozměr konzole se nastaví dle velikosti bludiště).
- Značení:
S
= StartF
= Cíl#
= Zeď
- Načte bludiště definované v souboru
-
Trpaslík
- Vytvořte objekt trpaslíka, který:
- Se pohybuje bludištěm (pouze nahoru/dolu, vlevo/vpravo, nikoliv diagonálně).
- Snaží se najít cestu ven.
- Implementujte pomocí Strategy nebo Polymorfismu.
- Vytvořte objekt trpaslíka, který:
-
Chování trpaslíků
- V bludišti postupně vložte 4 trpaslíky, každý po 5 sekundách:
- Točí se doleva.
- Točí se doprava.
- Teleportuje se náhodně do cíle (Star Trek mód).
- Najde při vložení cestu k cíli a sleduje ji (algoritmus hledání cesty musí být dynamický, cesta nesmí být hard-coded, bludiště bude při testování změněno).
- Při každém kroku se vypíše aktuální pozice trpaslíka v bludišti (jedna iterace čeká 100 ms před dalším krokem).
- V bludišti postupně vložte 4 trpaslíky, každý po 5 sekundách:
-
Dokončení
- Aplikace čeká, dokud všichni trpaslíci nedorazí do cíle.
- Platforma: C# .NET 4.8
- Důraz na:
- Správné datové typy pro uložení bludiště.
- Čistý kód.
- Nepřekreslování bludiště, pokud to není nutné.
- Správná implementace polymorfismu/Strategy vzoru, ideálně s využitím Factory pro trpaslíky.
- Bludiště se načítá ze souboru
Maze.dat
, který je validován, aby všechny řádky měly stejnou délku. - Program automaticky detekuje polohy startu (
S
) a cíle (F
).
- Velikost konzole je ověřována před spuštěním simulace. Pokud není dostatečná, uživatel je vyzván ke změně velikosti.
Čtyři různé strategie pohybu trpaslíků jsou realizovány pomocí polymorfismu:
- Točení doleva: Trpaslík používá algoritmus „levé stěny“.
- Točení doprava: Trpaslík používá algoritmus „pravé stěny“.
- Teleportace: Trpaslík se náhodně teleportuje na volné pozice v bludišti.
- Sledování cesty: Trpaslík si pomocí BFS najde nejkratší cestu a sleduje ji.
- Překresluje se pouze pohyb trpaslíků, vypsané pozice trpaslíků, aby se minimalizovalo zbytečné překreslování.
- Trpaslíci jsou do bludiště vkládáni postupně s odstupem 5 sekund.
- Pohyb probíhá v iteracích, každá iterace trvá 100 ms.
- Simulace končí, když všichni trpaslíci dosáhnou cíle.
- Platforma: Windows 10 nebo novější.
- .NET SDK: Verze 6.0 nebo novější. Stáhněte si ji z oficiálního webu .NET.
-
Stažení projektu:
- Stáhněte projekt a umístěte soubor
maze.dat
do stejné složky jako aplikace.
- Stáhněte projekt a umístěte soubor
-
Kompilace a spuštění:
- Otevřete příkazovou řádku (
Command Prompt
) nebo PowerShell. - Přejděte do složky projektu:
cd cesta\k\složce
- Spusťte aplikaci příkazem:
dotnet run
- Otevřete příkazovou řádku (
Aplikaci je třeba spouštět pouze v příkazové řádce (CMD) nebo PowerShellu v režimu Windows Console Host. Moderní terminály, jako je Windows Terminal nebo integrované terminály v IDE (např. Visual Studio Code), nepodporují změnu velikosti konzole prostřednictvím kódu, což může způsobit problémy s vykreslováním bludiště.
- Otevřete CMD nebo PowerShell:
- Stiskněte Win + R, napište
cmd
nebopowershell
a potvrďte klávesou Enter.
- Stiskněte Win + R, napište
- Přejděte do složky, kde je aplikace umístěna:
- Použijte příkaz:
Například:
cd cesta\k\složce\s\aplikací
cd C:\Users\Uživatel\Documents\MazeProject
- Použijte příkaz:
- Spusťte aplikaci příkazem:
Maze.cs.exe
Aplikace vyžaduje správné nastavení konzole ve Windows 11. Ujistěte se, že máte změněno nastavení konzole:
- Otevřete Nastavení > Systém > Pro vývojáře > Terminál.
- Změňte volbu Nechat rozhodnout Windows na Hostitel konzole windows .