Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Tetris v C# .NET WPF

Naprogramoval jsem klasickou hru Tetris v C# .NET. Pro grafické rozhraní jsem použil WPF. Touto hrou jsem si procvičil dědičnost, použití rozhraní a vláken, práci s kolekcemi a WPF.

Stručný popis řešení

GUI

Hrací čtverečková síť je vytvořena z gridu s deseti sloupci a 20 řádky. V každé buňce gridu je objekt Rectangle, kterému se v průběhu hry mění barva.

Objekty(kostky)

Každý druh kostky skládající se z maximálně 4 dílčích kostiček má svou vlastní třídu. Dědí z třídy BaseShapeObject, ve které jsou implementovány posuny do stran a samotná kolekce bodů. Všechny třídy implementují rozhraní IObject, ve kterém je definována metoda Create pro vytvoření kostky(tvar/pozice kostky).

Herní logika

Při ovládání pohybu kostky se kontrolují souřadnice bodů kostky, jestli jsou v souřadnicích herní plochy, jinak se pohyb neprovede. Kolize a všechny metody pohybu jsou řešeny pomocí funkcí generické kolekce List.

Např. pohyb doleva. Podmínka jestli neexistuje bod, který je menší než počátek osy X (nula). Další podmínka řeší kolizi, jestli se na nové pozici již nějaký bod nenachází. Pokud ne, posunou se všechny body kostky.

if (!points.Exists(p => (p.X - 1) < 0))
{
    if (!listOfOtherObjects.Exists(lo => points.Exists(p => (p.X - 1) == lo.X && p.Y == lo.Y)))
    {
        points.ForEach(p => { p.X--; });
    }
}

Na pozadí běží vlákno, které měří čas posunu kostky dolů. Hodnota začíná na 1 sekundě. Každé kolo se zmenšuje o 20%. Bodování je následující (n je aktuální kolo):

Počet odbouraných řad Body
Jedna n*40 + 40
Dvě n*100 + 100
Tři n*300 + 300
Čtyři (tetris) n*1200 + 1200

Hru lze kdykoli pozastavit.

Na případné dotazy či jiné možnosti řešení rád odpovím :)


Galerie

Hra byla vytvořena v roce 2013.

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 748x (1.25 MB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

Všechny články v sekci
Zdrojákoviště C# .NET - Okenní aplikace WPF
Článek pro vás napsal Petr Domes (petrds)
Avatar
Uživatelské hodnocení:
3 hlasů
Programuji v .NET. Ovládám C#, .ASP, WF, WPF, SQL
Aktivity