SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU STROJOVĚ ORIENTOVANÉ JAZYKY
Dohnal Jan, studijní skupina 323
stažení celé semestrální práce
Tetris v textovém režimu
Hra spočívá ve skládání padajících bloků různých tvarů. Bloky můžeme otáčet a posouvat po hracím poli (o šířce 11 políček).
Pokud hráč zaplní bezezbytku celý řádek, řádek zmizí. Postupem času získává hráč vyšší úroveň (level) a to až do úrovně 17
(nepředpokládá se, že by hráč byl úspěšnější ;). Čím vyšší úroveň, tím rychleji padají bloky. Hra končí zaplněním hracího pole.
Ovládání
Bloky se mohou posouvat doleva (šipka vlevo) a doprava (šipka vpravo). Blok můžeme také otáčet (šipka nahoru), nebo ho položit
na "dno šachty" (šipka dolů). Hra se ukončí klávesami ctrl-c, a nebo pokud dohrajete hru a na otázku "Retry?" (hrat znovu) odpovíte
"n" tedy ne. Pokud chcete hrár znovu odpovězte "a".
Implementace
Pro zjednodušení jsem zvolil textový režim (screen mode = 1). Zdrojový kód jsem rozdělil do tří souborů:
- tetris.asm - hlavní blok programu. Obsahuje hlavní cyklus a procedury pro ovládání aplikace Tetris.
Pro časování je použit čítač reálného času, takže aplikace není závislá na rychlosti PC. Dále obsahuje část obsluhující stisky kláves
a následné vyhodnocení. Generátor náhodných čísel, který je použit pro generování nasledujícího bloku využívá systémového času
(pomocí přeřušení DOSu). Dále je zde realizováno počítání bodů (score). Hra končí pokud "není kam" vykreslit novou kostku.
Po prohrané hře je hráči nabídnuta možnost nové hry.
- bloky.asm - definice a datové struktury reprezentující jednotlivé bloky, které jsou rozlišeny barvou
a čtyřmi čísli udávajícími odstup jednotlivých políček bloku (tvar kostky).
- screen.asm - knihovna funkcí obsluhujících výstup a práci s obrazovkou. Mimo to zde naleznete proceduru
na zjištění místa pro další kostku, výpis různobarevných textů, vykresleni jednotlivých bloků, mazání zaplněných řádků, inicializaci
obrazovky - vyčištění obrazovky a vykreslení hracího pole, komunikačních dialogů a také testování plného zaplnění řádku.
Pro překlad programu jsem použil programy TASM.EXE, TLINK.EXE a script
make.bat. A nakonec hotovy program TETRIS.COM.