Ahoj tak zadání vypadalo takhle:
Naprogramujte "Simulator Hada".
Cilem ulohy je odsimulovat prubeh hry, ktery je popsan souborem.
V souboru je popis bludiste a potom poporade popis jednotlivych hadu.
Popis bludiste se sklada z rozmeru na prvnim radku (sirka x vyska)
a potom z matice znaku odpovidajici velikosti. Znaky znamenaji
prazdne policko
X plne policko
S misto kam je vhozen had . Tato mista maji poradi definovane lexikograficky podle radku a potom sloupce.Nasleduje popis jednotlivych hadu (podle usporadani znaku S). Had je popsan na jednom radku tremi udaji
1, delka
2, pocatecni smer - E W N S
3, program - sekvence cisel a znaku L a R. L zmeni smer hada doleva a R doprava.
Zmena smeru se hned projevi posunem v tom smeru.
Tedy napriklad sekvence LRLRLRLRLRLRLRLR udela "schody", LLLL se toci na 4 polickach
Pokud je v programu cislo n, had pobezi pristich n kroku aktualnim smerem.
Kdyz se dorazi na konec sekvence, pokracuje se znova od zacatku.Had narazi na jineho hada, na sebe nebo na zed. Cilem je zjistit v kterem kroku ktery had narazi a najit viteze, ktery vydrzi
nejdele.Poznamky!!!
V kazdem kroku simulace se pohnou vsichni zivi hadi
Mrtvoly hadu v bludisti zustavaji.
Bludiste se "opakuje" - pokud tomu nebrani zed, dostane se had z leveho okraje doprava, z horniho dolu a podobne.
Had neroste (nema co by sezral) s jedinou vyjimkou a to je zacatek hry. V prvnim kroku maji hadi delku jedna,
v nasledujicich rostou, dokud nedosahnou plne delky.Simulace se muze zacyklit! Tedy trasa hada (hadu) se opakuje aniz by do neceho narazil.
To je treba detekovat a oznamit uzivateli.Vystupem ma tedy byt cislo hada a pocet kroku ktere se odsimulovaly nez narazil.
Pokud se hra zacykli, vypise se info o hadech kteri narazili pred cyklem, pocet
kroku nez se simulace dostala do cyklu a delka cyklu.Vse se indexuje od nuly.
Priklad vstupu definujici bludiste 20x10 ktere ma jen "zed na okraji". Do bludiste jsou vpusteni 3 hadi.
Prvni ma delku 4, zacina na pozici prvniho S, vyjizdi na zapad a v prvnim kroku se otoci doleva, pak doprava, pak doleva a tak dale
a nakonec narazi do zdi v 8mem kroku, jeste nez se dostane k polozce 100.
Druhy had ma delku 10 a kouka na vychod. V zapeti zahne doleva (nahoru) a jede tim smerem 10 kroku. Drive ale narazi do zdi a konci
ve 4. kroku. Posledni had, vyrazi na jih a konci ve 3. kroku narazem na zed.#RozmeryBludiste
20 10
#TvarBludiste
XXXXXXXXXXXXXXXXXXXX
X..................X
X...S..............X
X..................X
X...........S......X
X..................X
X......S...........X
X..................X
X..................X
XXXXXXXXXXXXXXXXXXXX#Popis prvniho hada
4 W LRLRLRLR100LR
#Popis druheho hada
10 E L10L10L10L10
#Popis tretiho hada
1 S 50
Na zacatku nam cvicici jeste upresnil nektere veci. Napriklad ze hadovi se nejdriv prodlouzi hlava a potom se mu teprve zkrati ocas, takze napriklad had delky 4 s programem LLLL by naboural sam do sebe. Potom jeste ze v ramci jednoho kroku je poradi posouvani hadu stejne jako jejich poradi ve vstupu. Jinak podle me stejne nakonec nekontroloval zadny speky, takze tyto veci nebyly zas tak dulezity. Na zacatku nam dal asi 6 vstupnich dat, na kterejch jsme si to mohli zkouset a na kterych to i kontroloval (mimo jiných).