FallingBricks - dokumentace

Princip a pravidla hry:

Základním rysem jsou náhodně generované kostky, které postupně jednotlivě v určitém časovém intervalu padají svisle dolů až na dno hrací plochy. Kostky mají v klasické verzi 7 různých tvarů připomínající písmena. Hráč má k dispozici možnost pomocí klávesových šipek posouvat a otáčet kostku tak aby se šikovně vešla mezi zaplněná políčka na hracím poli. Důležitým pravidlem je skutečnost, že pokud se na hrací ploše objeví plný řádek, bude tento řádek vymazán. Cílem je skládat kostky tak aby se podařilo odstranit co nejvíce řádků na jednou. Hra končí když hráč špatným uspořádáním kostek dosáhne stropu hrací plochy.

Fungování programu

Program se skládá celkem z šesti souborů, z nichž každý obsahuje nadefinovanou třídu obstarávající příslušnou část hry.

Závěr a vlastní postřehy

Při vytváření této semestrálky jsem si chvílema, hlavně kolem grafiky, nevěděl moc rady, ale naštěstí trocha hledání na internetu a experimentování vždycky pomohla a podařilo se tak vytvořit co jsem potřeboval. Co do návrhu algoritmů jsem rád že se mi podařilo vytvořit některé části kódu tak aby zbytečně nezpracovávaly některé úseky víckrát. Například v třídě Matrix metoda removeFullRows nejdříve v první "hluboké smyčce" vymaže celé plné řádky a zároveň tak zjistí stav každého řádku (zda je částečně zaplněný), a pak v další smyčce když už je znám stav jednotlivých řádků stačí "mělká smyčka" (nemusí kontrolovat navíc každé políčko řádku) na to aby zajistila základní gravitaci propadnutím prázdných řádků.

Gravitace je v mé implementaci hry skutečně pouze základní. To znamená že se na hrací ploše hledají prázdné řádky a pokud tam jsou, zajístí se aby se vyšší řádky propadly. Hra neobstarává reálnou gravitaci, která by zajistila propadnutí dílků do mezer, které se objevily po vymazání plných řádků. Tudíž může nastat situace, kdy se na hrací ploše objeví dílek, který přestože není ničím podpírán, visí nad volným prostorem.

Zdroje

Užitečný zdroj základních informací a tipů pro vývoji her Gamedev.net
Kniha Java 5 (Ivor Horton) - trochu horší na čtení ale celkem dobře vysvětleno fungování komponent awt a swingu.