Zadání:
Hru tetris myslím není nutné představovat. Snad všichni znají tuto hru pocházející z tehdejšího Sovětského
svazu. Ve hře hráč umísťuje padající bloky různých tvarů tak, aby vytvořili plnou linku, která je následně
vymazána a hráči jsou přičteny body.
Ovládání:
Na začátku hráč tvolí rychlost (1 až 4), kde 1 je nejpomalejší, 4 nejrychlejší. Dle zvolené rychlosti také
příslušně narůstá skóre. Vlastní hra se ovládá šipkami. Šipka nahoru otáčí blokem, šipky doprava, doleva a
dolů znamenají pohyb příslušným směrem. Klávesa
Escape hru ukončí.
Popis:
Hra je naprogramována v assembleru (Nasm) pro grafický režim 320x200.
Struktura bloků je uložena v matici 4x4 bity = 1 word. Pro každý blok (6 možných) a každou pozici otočení
(4 možné) jedna matice. Tyto matice jsou využívány při kreslení bloků a testování, zda je možné blok
otočit/posunout a podobně.
Asi nejdůležitější (přičemž i nejjednodušší) je asi rutinka pro vykreslení políčka 8x8 příslušnou barvou.
Poté co se program nainicializuje je její pomocí vykresleno ohraničení herní plochy. Generátor náhodných
čísel vybere blok a vykreslí ho nahoru (pokud lze). Pokud blok nelze vykreslit, hra končí.
Test možnosti vykreslení testuje zda, pod políčkem označeným v matici již není vykreslen nějaký blok.
Stavový prostor je tedy to, co je vykesleno na obrazovce a zde se i provádějí všechny testy. Tento test
se rovněž provádí při pokusu o otočení nebo posun bloku.
Taktéž test na plnou linku prochází všechny řádky a je-li některý plný, posune řádky nad ním o jeden dolu
a přičte skóre.