Portál AbcLinuxu, 1. května 2025 04:50
Začneme něčím, co moje hračička není. Přesto na tom mám jisté zásluhy.
Závislosti: SDL, lua
Znáte? Česká logická hra, kde je cílem dostat ven dvě ryby. A aby to nebyla taková nuda tak do toho ty ryby navíc kecají humorné hlášky. Já jsem do tohoto projektu přispěl jen osmi novými místnostmi (větev navazující na Nepořádek v kotelně kromě místnosti Zámek a klíč). Doufám, že jsem těmito místnostmi příliš nepoškodil vtipnost a obtížnost hry. Pro motivaci: poslední místnost je o linuxácích.
Kromě toho se mi povedlo přesvědčit vývojáře, aby zlepšil undo, protože vrácení jednoho tahu za dvě sekundy bylo k nevydržení. Bylo by blaze, kdyby měly všechny projekty takhle vstřícné vývojáře.
Když jsem předváděl tuto hru českému týmu mezinárodní matematické olympiády, byla kritizována především nelogická pravidla. A když jednou někdo při hraní prohlásili, "Jejda, já zapomněl, že tam není tření", napadlo mě to tření implementovat.
Závislosti: Xlib, cairo, lua
Funguje tu tedy pravidlo: když se pohne předmět, pohnou se i ty, ne které na něm leží.
Nabízí se otázka: proč jsem nevyužil kód původních rybiček, stačila přece jenom lehká změna v pravidlech. Nerad se totiž rýpu v cizím kódu. I když jsem v původním zdrojáku našel soubor Rules.cpp, je zásah do do tohoto souboru obtížný a nejistý. Můj program tedy neumí animace ani zvuk. Ale zase zvládá více uložených pozic a to i s undem.
Závislosti: Xlib, volitelně openAL (zvuk)
Nevěřili byste, jak je mezinárodní matematická olympiáda tvůrčí prostředí. To nás tak jednou napadlo naprogramovat pong, protože ten v Emacsu je jaksi příliš zabugovaný. První pong začal být programovaný v javě, dokonce více lidmi. Já jsem k programování v týmu skeptický. Moje teorie je, že když jeden programátor naprogramuje software za jeden den, tak pět programátorů naprogramuje ten samý software za pět dní.
A javu taky nemám moc rád. Prostě jsem se rozhodl, že to musím mít rychleji a lépe. A měl jsem. Zatímco javovský pong umožňuje jen jednu hru a je to tak pomalé, že takřka není možné prohrát, ten můj je skvěle hratelný. Navíc disponuje možností střílení šípu, aby se nenudil hráč, od něhož zrovna míček letí.
Další šikovná vlastnost tohoto programu je, že velikosti objektů se odvíjejí od velikosti obrázků, takže je možné například změnou velikosti destičky dát jednomu hráči výhodu.
A nakonec tu je i možnost ovládání soupeře počítačem. Porazit tento počítač není nemožné, například na screenshotu nad ním vedu 21:15, ale pokud se vám bude dařit ho dlouhodobě porážet, máte můj obdiv.
Závislosti: GTK
To byl jeden ne úplně vydařený pokus naprogramovat počítač, co přemýšlí nad hrou. Problém je v tom, že počítač přemýšlí půl minuty a přesto není nijak neporazitelný. Ale úplně blbý zase taky není, chce to vyzkoušet. Hraje se na toru a nejlépe se mu daří ne 7x7.
Začal jsem s něčím, co sice je hračička, ale není moje, skončím s něčím, co je moje, ale není to zas tak úplně hračička. To jsem si jednou naanimoval video v blenderu.
Závislosti: mplayer, VLC nebo jiný přehrávač, co to zvládne (třeba Windows Media Player ne)
A to je vše. Jestli se vám něco líbilo, napište komentář.
Tiskni
Sdílej:
Funkcia SDL_WaitEvent, naozaj caka dokedy neprisla do fronty nejaka udalost.To jsem věděl, že něco takového existuje. Ale že ty příklady na SDL to nepoužívají ve mně vyvolává pochyby.
Ano pri fullscreene sa naozaj meni rozlisenie obrazovky. Napriklad ked program bezi v okne s rozlisenim 800x600, tak sa naozaj pokusi pri fullscreene prepnut na rozlisenie 800x600. (neprijemne, ked sa program zruti)Mně vadí změna rozlišení třeba i proto, že velikost hry může být jiná než velikost velikost obrazovky a pak se to nepěkně deformuje. A samozřejmě taky to, že když mám SDL hru na fullscreenu, tak nemohu přepnout do jiné plochy. Zkrátka to se mi na SDL jeví dost nedomakané, třeba Glut umí pěkný fullscreen.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.