README.md 4.63 KB
Newer Older
Černohousová Zuzana's avatar
Černohousová Zuzana committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
BOMBERMAN

Bomberman je hra, kde se postavička jménem Bomberman pohybuje bludištěm (šipky) a snaží se bombami (klávesa B) zneškodnit příšery nebo najít východ.
Obě tyto akce ukončí hru vítězně. Hráč prohraje, nechá-li se chytit příšerkou nebo pokud jej zasáhne výbuch.
Bomberman chodí do čtyř směrů mezi dvěma druhy zdí - pevnými a rozpadavými. Celé bludiště je obehnané pevnými zdmi.
Pokud výbuch bomby zasáhne rozpadavou zeď, ta je zničena a odhalí buď prázdné místo, východ nebo poklad, za který je možné získat bonusové body (+300).
Za každou zneškodněnou příšerku získává hráč body (+150) a zároveň se snaží ukončit hru co nejrychleji, protože čím dříve je hra ukončena, tím vyšší získá hráč bonus za rychlost (na začátku 1000).
Bomberman může pokládat neomezeně bomb, výbuch se šíří do 4 hlavních směrů až do vzdálenosti 3 od umístění bomby, pokud se dříve nezastaví o zeď.
Příšeky se vyskytují ve dvou stavech - pokud jsou modré, jdou doprava vždy, když mohou, a pokud jsou červené (ve vražedném módu), vědí, kde se nachází Bomberman a jdou nejkratší cestou k němu.
Pokud v rámci jednoho formuláře hráč hraje opakovaně, je mu počítáno maximální skóre.


ZDROJOVÉ SOUBORY

Program je rozdělen do 2 hlavních souborů - Form1.cs a Bomberman.cs.
Bludiště je načteno z textového souboru bludiste.txt a obrázky jednotlivých objektů a postaviček ze souboru obrazky.png.


HERNÍ PLÁN A OBRÁZKY

Bludiště je kódováno následujícími znaky: . Z h B V v > ^ < a x e X E

Černohousová Zuzana's avatar
Černohousová Zuzana committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    .	prázdné políčko 
    Z	pevná zeď
    h	Bomberman (hrdina)
    B	bomba
    V	výbuch
    v	příšera směřující dolů
    >	příšera směřující doprava
    ^	příšera směřující nahoru
    <	příšera směřující doleva
    a	rozpadavá zeď, za kterou je prázdné políčko
    x	rozpadavá zeď, za kterou je poklad
    e	rozpadavý zeď, za kterou je východ
    X	poklad
    E	východ
Černohousová Zuzana's avatar
Černohousová Zuzana committed
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

V herním plánu - tedy v souboru bludiste.txt - se však mohou objevit jen znaky některé. Jsou to tyto: . Z h v > ^ < a x e.
Ostatní objekty musí vzniknout až v průběhu hry například položením bomby nebo zničením rozpadavé zdi.

Soubor bludiste.txt musí vypadat takto: na prvním řádku výška bludiště V, na druhém jeho šířka Š a posléze na dalších V řádcích jsou řádky bludiště délky Š.

Soubor obrazky.png je obdélníkový obrázek složený z 18 čtvrecových obrázků v řadě vedle sebe.
Prvních 14 obrázků odpovídá znakům, které jsou výše a poslední 4 odpovídají příšerkám ve "vražedném módu" ve stejném pořadí jako u normálních příšerek.


SOUBOR BOMBERMAN.CS

Bomberman.cs je hlavním souborem projektu.
Obsahuje třídu Mapa, jejíž instance se starají o jednotlivé hry.
Dále obsahuje abstraktní třídu MeniciSePrvek a od ní odvozené třídy Bomberman, Prisera, Bomba a Vybuch - tedy všechny objekty, které se v čase musí pohybovat nebo po nějaké době přeměnit v jiný objekt.
MeniciSePrvek má abstraktní funkci UdelejKrok, která je pro každou odvozenou třídu modifikovaná - u Bombermana a Příšery je to opravdu krok v bludišti a u Bomby a Výbuchu odečtení od počítadla (doba do výbuchu, resp. do konce výbuchu).

Třída Mapa nejprve načte bludiště a obrázky ze souborů, přitom podle znaků vytvoří instance jednotlivých tříd a následně se o ně stará - o jejich pohyb, otáčení a rušení.
Mapa se také stará o vykreslování bludiště pomocí obrázků.


SOUBOR FORM1.CS

Obsahuje třídu Form1, která má funkce pro identifikaci stisknutých kláves, jejich puštění a řídí akce, které budou následovat po událostech ve formuláři jako je zmáčknutí tlačítek nebo tiknutí timeru.
Formulář má instanci Mapy a ovládá počítání maximálního skóre v případě opakovaných her v jednom formuláři.


PRŮBĚH HRY

Spuštěním hry se inicializuje formulář, objeví se tlačítko "Start" a label se základními insturkcemi, jak hru ovládat.
Stisknutím tlačítka Start je vytvořena instance mapy, aktivován timer, s jehož každým tiknutím je mapa aktualizována - každá instance měnícího prvku udělá krok, jsou provedeny příslušné změny a aktuální bludiště je vykresleno na formuláři.
Dokud nedojde k události, která by měla hru ukončit, tiká timer a aktualizace a vykreslování se opakuje.
Pokud k takové události dojde, objeví se label oznamující výsledek - prohru nebo výhru a v druhém případě i skóre a maximální dosažené skóre - a tlačítko, kterým lze hru opětovně spustit.