Cvičenie č. 10 - Zápočtový test č. 1

Úloha: Bludisko

Nájdite najkratšiu cestu z bludiska:

Príklad

Vstup

+-+-+-+-+-+-+-+-+-+-+
    |       |       |
+-+ + +-+-+ + +-+-+-+
|   | |       |     |
+ +-+-+ +-+ + + +-+ +
| | |   |   |   | | |
+ + + +-+ +-+-+-+ + +
|   | |   |   | |   |
+ +-+ + +-+-+ + +-+-+
| |   |   |   |   | |
+ + +-+-+ + +-+-+ + +
|   |     | |   |   |
+-+-+ +-+-+ +-+ +-+ +
|     |     |     | |
+ +-+-+ +-+-+ +-+ + +
|   | |     |   |   |
+-+ + +-+-+ +-+ +-+-+
|   |       |       |
+ +-+ + +-+-+ +-+-+ +
|     |       |      
+-+-+-+-+-+-+-+-+-+-+

Výstup

+-+-+-+-+-+-+-+-+-+-+
####|       |       |
+-+#+ +-+-+ + +-+-+-+
|###| |#####  |     |
+#+-+-+#+-+#+ + +-+ +
|#| |###|###|   | | |
+#+ +#+-+#+-+-+-+ + +
|#  |#|###|   | |   |
+#+-+#+#+-+-+ + +-+-+
|#|###|###|   |   | |
+#+#+-+-+#+ +-+-+ + +
|###|#####| |   |   |
+-+-+#+-+-+ +-+ +-+ +
|#####|     |     | |
+#+-+-+ +-+-+ +-+ + +
|###| |     |   |   |
+-+#+ +-+-+ +-+ +-+-+
|###|###    |#######|
+#+-+#+#+-+-+#+-+-+#+
|#####|#######|    ##
+-+-+-+-+-+-+-+-+-+-+

Poznámky:

  • bludisko načítavajte zo súboru a výstup vypíšte do konzole
  • môžete predpokladať, že na vstup dostanete vždy rozumné bludisko (tzn. nie je treba ošetrovať nesprávny vstup)
  • bludisko na vstupe môže mať rôzne rozmery
  • viete sa hýbať len v štyroch smeroch: hore, dole, doprava, doľava
  • nájdená cesta musí byť najkratšia
  • do bludiska vstupujete vždy z ľavého horného rohu a vystupujete z práveho dolného rohu
  • vaše riešenie si otestujte aspoň na niekoľkých ďalších vstupoch, ktoré si vygenerujte tu: Maze Generator
  • hint: použite vhodné prehľadávanie, môžete používať dátové štruktúry naimplementovanú priamo v C#, e.g. Queue<T>.
  • chcem vidieť pekne štrukturovaný kód, tzn.:
    • rozumné využitie tried
    • žiadna metóda by nemala mať viac než 10 riadkov

Vaše riešenie aj s testovacím kódom mi pošlite mailom (posielajte len čisté zdrojáky).

Ďalšie cvičenie odpadáva, opravný termín bude až o 2 týždne.