2012. jún. 20.

Trimage

Mindig azt mondják, hogy ha tanulni akarunk, akkor szálljunk be valami nyílt-forrású projektbe. Nekem a Trimage volt régen egy ilyen projekt. A Trimage alkalmazás Kilian egy aranyos kis Python projektje volt (és valoszleg még ma is az) egyszerű átlátható kóddal.
A Trimage alkalmazás jpeg és png képek veszteségmentes tömörítésére szolgál.
A projektben való részvétel az kb. annyiból állt, hogy commit-olgattam githubon, és Kilian meg lelkesen befogadta őket. Pár e-mailt is váltottunk. Feladatot meg vagy a TODO listáról válaszottam vagy pedig csak úgy találtam valami teendőt.
OOP-sítettem, kicsit átdolgoztam a gui-t, párhuzamosítottam, csináltam windows port-ot és jó pár egyéb apróságot csináltam, és Kilian egy idő után megtisztelt azzal, hogy a projekt weboldalához is hozzáadta a nevem(commit).  Ezt akkor nagy megtiszteltetésnek éltem meg.

Biztos vagyok benne, hogy ma is lehetne teendőt találni ezzel kapcsolatban.

2012. jún. 19.

Túl sok időm van labirintus

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:
Labirintus
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.)
"Képernyőkímélősített"labirintus
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:
"Képernyőkímélősített" slow-motion labirintus
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.