STROJOVE ORIENTOVANE JAZYKY

SEMESTRALNI PRACE


Hry Grafika Komunikace Utility Komprimace Zvuk

Hry:

Arkanoid - prvni pocitacova hra s rastrovym zobrazovanim na svete, z roku 1978 od firmy Atari, znama take pod jmenem Break Out. Hraci plochu tvori zed z barevnych cihel, bourana mickem, odrazenym palkou, se kterou posunuje hrac v dolni casti obrazovky. Vase predelavka by mela pouzivat 256 barevny rezim a pokud mozno mysoidni ovladani palky. Pokud nepouzijete pozadi, je realizace velmi jednoducha, protoze kolizi lze urcit primo z nenuloveho obsahu videoram na miste vykreslovani micku. Vhodne pro zacinajici kodery.

Ground Attack - horizontalne zprava doleva se posunuje relief krajiny, nad kterou leti raketa. Hrac ovlada jeji polohu, a tim se vyhyba kolizi. Muze dopredne strilet, nebo shazovat bomby. Ze zeme proti nemu vyletavaji nepratelske rakety, a koridor pro manevrovani se postupne zuzuje. Ovladani radsi klavesnici, opet 256 barevny rezim. Kolize lze zrovnatak detekovat primo podle obsahu videoram, ale protoze se scrolluje pomerne dost dat, je rozumne pouzit zalozni videoram v konvencni pameti, a z ni scenu prokopirovavat kazdy snimek do videoram na karte. Vhodne pro stredne pokrocile kodery.

Moon Patrol - po reliefu mesicni krajiny, rolovane zprava doleva, jede mesicni auticko. V reliefu krajiny jsou kratery, ktere je treba preskocit, a hromadky hliny, ktere je potreba rozstrelit. Obe akce ovlada hrac, vcetne rychlosti pohybu auticka (ktera zaroven udava jeho polohu vuci stredu obrazovky). Seshora na auticko shazuji bomby letajici talire, nektere bomby po dopadu na relief krajiny vytvari novy krater. Pozadi muze byt i dvojurovnove (relief a v pozadi hory). V rezimu 256 barev. Stinova videoram bude patrne nutna. Vhodne pro pokrocilejsi kodery.

Space Invaders - v dolni casti obrazovky se za tremi bloky ukryva raketa, ktera mezerami mezi nimi strili do pohybujici se formace nepratelskych lodi v horni casti obrazovky. Nepratelske lode se postupne k blokum blizi, a prubezne je rozbiji shazovanymi bombami. Po uplnem priblizeni bloky mizi, a raketu uz nic nechrani. V rezimu 256 barev, ovladani klavesnici. Protoze posun nepratel muze byt rovnomerne rozdeleny mezi jednotlive snimky, neni nutna stinova videoram, kolize lze resit primo. Vhodne pro stredne pokrocile kodery.

Tetris - znama hra z byvaleho Sovetskeho svazu, padajicimi geometrickymi obrazci nekolika zakladnich tvaru se hrac snazi zaplnovat prostor. Kontinualne zaplnena horizontalni linka se umazava, a hrac ziskava body i vice prostoru na manevrovani s padajicimi utvary. Vcelku lehka hra, vhodna pro zacatecniky. Pouzijte 256 barevny rezim.

Digitalni hry - emulator nejake zname i nezname digitalni hry. Typicky ruske klasiky 'Nu pogodi', 'Tajny okeana' a dalsi. Predpoklada se provedeni co mozna nejvice podobne chovani originalu, ale pokud si hru upravite, a upravy nebudou typu 'tohle neumim, to vypustim', je to take mozne.

Vlastni namet na hru - uvitame ;). Reknete nam vase predstavy, a nejak se domluvime.

Grafika:

Vektorove vykreslovani - vytvorte si rutinu na vykresleni minimalne cary (pokrocilejsi mohou naimplementovat treba Bezierovy krivky). Pro tuto rutinu si nadefinujte vlastni vektorove obrazce (pismo, nebo treba schematicke znacky), a predvedte jejich vykreslovani. Ukazte i moznost nataceni, koseni, zoomovani a podobne. Vhodne pro zacinajici kodery.

Rotozoomer - terminus technikus z demosceny pocatku 90. let - jde o zobrazeni otacejici se textury (256 barev), ktera se vzdaluje a priblizuje (zoomuje). Jde o nenarocny zakladni efekt, vhodne pro zacinajici kodery.

Fraktaly - pomoci konvergence iterativni rovnice v komplexnim oboru lze pocitat fraktaly (Mandelbrotova mnozina). Vytvorite rozumne rychly a parametrizovatelny algoritmus na jejich zobrazovani, pouzijte 256 barev.

Voxelovy prostor - plasticke vykreslovani krajiny, pouzite v nekolika starsich hrach. V pameti mate vyskovou mapu krajiny, a vytvorite rutinu, ktera ji umozni "proletavat" podle principu voxeloveho zobrazovani.

Zobrazovac grafickeho formatu - vyberete si nejaky rozumny rozsireny graficky format (ne *.raw ;), a napisete program, ktery ho bude umet ve vhodnem rezimu graficke karty zobrazit. Mel by jit zvetsovat a zmensovat (2x, 4x), a posunovat sipkami. Vhodne pro zacinajici kodery.

Vlastni graficky algoritmus - uvitame ;). Domluvte se s nami mailem, nebo na cviceni.

Komunikace:

Talker - program pro dva ucastniky, s pocitaci propojenymi seriovym kabelem (nullmodemovym). Mel by byt rezidentni, a po vyzve druhe strany upozornit na prichozi hovor. Po odsouhlaseni hovoru pak zobrazi konzoli, kde by kazdy videl, co pise i co druha strana napsala (jako unixovy talk nebo ipxtalk). Staci textovy rezim, vhodne pro zacinajici kodery.

File trasferer - program pro prenos souboru mezi dvema PC, spojenymi seriovou nebo paralelni linkou. Mel by byt obousmerny, s kontrolnimi kody (minimalne kontrolni suma). Mel by umoznovat vyber souboru z adresarove struktury, kterou si klient vyzada od druheho pocitace. Staci v textovem modu.

Emulator terminalu - obdoma programu smallcom, ktery emuluje terminal. Vas terminal by mel ale umet spravne zobrazovat i neASCII znaky, tedy kontrolni sekvence pro zmenu barev, pohyb kurzoru, i prekreslovani obrazovky. Jinymi slovy, kdyz se pomoci nej pripojite k seriovemu portu pocitace s Linuxem, a spustite napriklad Midnight Commander, mel by byt barevny, a spravne reagovat na sipky a horke klavesy. Vhodne pro stredne pokrocile kodery.

Ethernet sniffer - program, ktery bude vyuzivat sluzeb tzv. packet driveru. Packet driver je softwarove rozhrani sitovych karet pod DOSem, obsazuje jeden z INTu, a jeho popis byl k dispozici na CSLABu nebo zapakovany v souboru pktdrvr.zip. Vas program bude odposlouchavat pakety, a hledat v nich ruzne veci - napr. logovaci sekvence atd. Je to nekala cinnost, ale o to vic by vas to mohlo bavit ;).

Vlastni komunikacni program - uvitame ;). Domluvte se s nami na podrobnostech.

Utility:

Budicek s kalendarem - rezidentni budicek, ktery si ze souboru nacte, kdy ma v ktery den zvonit, pripadne bude zobrazovat dalsi udaje, vztazene ke dnu (kdo ma svatek, a podobne). Velice jednoducha zalezitost, proto by mel mit budicek pokud mozno co nejvice funkci.

IDE identifikator - kazde zarizeni, pripojene k IDE radici, umi poskytnout svuj identifikacni sektor. Vas program naoutuje prikaz pro poskytnuti tohoto sektoru do vsech zarizeni (potencialnich 4 disku a 4 cdrom), a pokud nejake zarizeni v danem case sektor poskytne, v nejake prehledne forme ziskane informace ze sektoru zobrazi.

VESA identifikator - kazda graficka karta standartu VESA umi poskytnout seznam zobrazovacich modu, ktere zvlada. Vas program tyto mody zjisti, pripadne nejakym jednoduchym logem, ktere zobrazi, otestuje.

CMOS editor - program pro zobrazeni a editaci dat, ktera jsou ulozena v obvodu CMOS. Umozni tedy nastavovat jak hardwarovy cas motherboaru, tak obsah teto pameti.

Memory tester - program pro testovani bezchybnosti systemove pameti. Zvolite si nejaky overeny testovaci algoritmus (horspool, marching ones, walking ones), a po prepnuti minimalne do flat-modu otestujete systemovou pamet, pripadne vypisete detekovane chybove adresy.

Ext2 reader - lahudka pro fajnsmekry, *.sys soubor pro DOS, ktery DOSu zpristupni pro cteni linuxovou partition s filesystemem Ext2.

Partition viewer - zobrazovac obsahu partition table. Mel by umet rozlisit typ partitiony (FAT 16/32 plus LBA/CHS, Extended atd.) a vypsat jejich zacatky, konce a velikosti. Inspirujte se zobrazenim Norton Utilit, nebo linuxoveho cfdisku.

Vlastni utilita - bude uvitana ;). Predem se ale s nami musite domluvit, co chcete delat.

Komprimace:

File archiver - vas program nejakym zpusobem zakomprimuje jeden, vice, nebo celou adresarovou strukturu souboru do jedineho souboru. K dispozici bude samozrejme i extraktor.

Executable kompresor - program, ktery zvladne zapakovani minimalne *.com souboru, a to minimalne metodou z rodiny LZ-kompresi. K zapakovanemu souboru bude automaticky prilinkovana rutina, ktera ho pri spustenim vzdy nejdrive v pameti rozbali, a nasledne pak spusti. Z hlediska uzivatele to tedy bude stale tentyz spustitelny soubor, delajici totez, ale kratsi.

Archive tester - vyberte si nejaky rozsireny format archivu, a napiste program, ktery otestuje jeho konzistenci a neposkozenost. Mel by to byt nejaky pokrocily archiver, ne zrovna *.tar ;).

Vlastni komprimacni zalezitost - radi uvitame ;). Domluvte se ale s nami na podrobnostech.

Zvuk:

Resampler a reverb - program, ktery nad souborem, obsahujicim sampl, umozni jak zmenu jeho samplerate, tak pripadny reverb efekt (nasobna ozvena). Upravy budou provadeny interpolaci, ne vypoustenim nekterych vzorku.

FM syntezator - program pro napocitavani zvuku nastroju, podle zadanych parametru FM syntezy. Vystup muze byt do souboru, neni nutna podpora zvukove karty.

Hradlo - terminus technikus z ceske osmibitove ery. Program, ktery zahraje nejakou melodii, minimalne dvojhlasne. Pokud bude umet vysyntetizovat vice typu nastroju, pripadne i bici, bude to velke plus. Zrovnatak muze jit o prehravac nejakeho znameho formatu (*.mod, *.s3m, *.xm), ale i exotickych lahudek (FutureComposer, SidMon, MusicAssembler atd.).

BX-Synth editor - pred nekolika lety jsem naprogramoval zhruba 1kB dlouhy syntezator, pro volitelny pocet kanalu, ktery hral mnohohlasou hudbu, generovanou stylem syntezatoru z osmibitovych pocitacu. Problem je, ze k nemu neni dostatecne user-friendly editor. Slo by o vizualizaci patternu a definic nastroju, spolu s umoznenim jejich editace. Realtime prehravani by se mohlo obejit vzdy vhodnym znetvorenim sedmibytove hlavicky modulu, tak, aby byl prehran bud jen jeden pattern, nebo jen jedna radka, a primym zavolanim meho replayeru.

Vlastni program pracujici se zvukem - samozrejme uvitame ;). Reknete nam ale vase predstavy, pak se na necem domluvime.