Egyszer el kellett mennem korábban egy szoftlab1 gyakorlatról. Azt akartam, hogy a gyakarlatvezető engedjen el hiányzás beírása nélkül, így hát megdumáltam, hogy következő alkalomra csinálok egy labirintusjátékot, és cserébe elenged hiányzás nélkül.
Ezen a félvételen épp játszom az alkotásommal:
forrás (fordítás: gcc -o maze maze.c -lncurses)
Mikor megmutattam neki következő alkalommal, akkor kiderült, hogy nem gondolta komolyan, hogy megcsinálom, és nem is várta el, és azt mondta, hogy túl sok időm van... És ezt negatívan mondta...
"Képernyőkímélősített" verzió: (Yep… Unatkoztam labon.)
forrás (fordítás: gcc –lncurses animatedmaze.c)
A labirintust randomizált DFS-el generáltam, ami jól látszik is az animációban. A slow-motion animációban meg még jobban.
Ez egy backtracking algoritmus, ami itt azt jelenti, hogy addig megy a láthatatlan útcsináló mindig véletlen valamerre, amíg tud. Aztán ha elakad, mert már minden irányban út van a fal túloldalán (és két utat nem akarunk egymásba nyitni, mert köröket nem szeretnénk a labirintusba), akkor egész addig visszamegy, amíg már nem ilyen helyen jár, és ott folytatja útcsináló tevékenységét. Ennyi az egész.
Slow-motion:
Am egész baráti a korábban linkelt c kódom, és a 2 verzió csak pár sorban tér el.
Ui.: El nem tudjátok képzelni, hogy mennyit vacakoltam, mire ilyen csili-vili animált gif-eket tudtam csinálni ebből, szóval szeressétek.