pvjc23/final/README.md

83 lines
3.8 KiB
Markdown

# Dinosaurus z google (disco)
Kedysi dávno, v odľahlej časti internetu, žil malý dinosaurus menom Douglas. Douglas bol vytvorený vývojovým tímom v Google ako veľkonočné vajíčko pre webový prehliadač Chrome. Išlo o jednoduchú ilustráciu dinosaura, ktorý sa objaví na obrazovke, keď používateľ stratí internetové pripojenie.
Na začiatku bol Douglas osamelý a nudný dinosaurus. Svoje dni trávil len tak, že stál na jednom mieste a čakal na obnovenie sieťového pripojenia. Postupom času sa však vývojári rozhodli pridať do jeho života trochu zábavy...
## Inštalácia a spustenie
Pomocou príkazu make môžete jednoducho skompilovať všetky herné súbory, pretože súbor Makefile sa používa na proces kompilácie kódu.
Kompilácia:
```c
make
```
Spustenie:
```c
./game
```
## Návod ako hru hrať a za akých podmienok sa hra končí
Táto hra je jednoduchá arkádová hra, v ktorej ovládate dinosaura a vyhýbate sa prekážkam.
Na spustenie hry budete musieť skompilovať a spustiť tento kód pomocou knižnice curses. Po spustení sa hra zobrazí na obrazovke.
Vašou úlohou je ovládať dinosaura tak, aby sa nezrazil s prekážkami. Prekážkami sú kaktusy. Dinosaurus sa ovláda pomocou kláves na klávesnici. Na skok použite kláves „↑“ alebo šípku hore.
Hra má dve úrovne obtiažnosti. Prvá úroveň je počiatočná úroveň a druhá úroveň je dostupná po prejdení prvej úrovne. Ak sa dinosaurus zrazí s kaktusom, hra sa skončí a na obrazovke sa objaví správa „OOOOPS, YOU LOSE“ (Oh, you lost). Počas hry sa vaše skóre bude zobrazovať v hornej časti obrazovky. Za každú prekonanú prekážku získate určitý počet bodov. Na prvej úrovni získate 10 bodov za každú prekážku, na druhej úrovni získate 15 bodov. Ak chcete hru ukončiť, stlačte kláves „Esc“. Toto ukončí hernú slučku a ukončí hru.
Prečo sa dinosaurovi v hre hovorí „disco“, sa dozviete už počas hry;)
Teraz ste pripravení hrať túto arkádovú hru! Ovládajte dinosaura, vyhýbajte sa prekážkam a získajte maximálne skóre. Veľa štastia!
## Funkcie hry
- funkcia draw_dino()
Táto funkcia je zodpovedná za kreslenie postavy dinosaura na obrazovku. Ako parametre berie súradnice x a y polohy a farby postavy.
- funkcia void* init_game()
Táto funkcia inicializuje stav hry pridelením pamäte pre štruktúru stavu a nastavením počiatočných hodnôt pre rôzne premenné, ako je pozícia dinosaura, pozícia kaktusu, úroveň, skóre atď. Vracia ukazovateľ na inicializovaný stav hry.
- funkcia int game_event(struct* event, void* game)
Táto funkcia sa volá v slučke na spracovanie rôznych herných udalostí. Ako parametre berie štruktúru udalosti a stav hry. Zaoberá sa udalosťami, ako sú stlačenia klávesov, časové limity a stlačenie klávesu ESC. Aktualizuje stav hry na základe udalostí a vykoná potrebné akcie. Aktualizuje tiež obrazovku kreslením herného obsahu.
Samotná štruktúra hry má nasledujúce premenné:
1. súradnice dinosaura
int dinox
int dinoy
1. počítadlá pre skoky
int jumps
1. krabica, ktorá predstavuje farbu dinosaura
int color
1. pole, ktoré obsahuje typy kaktusov v hre
int type[CACTUS_COUNT]
1. pole, ktoré obsahuje počiatočné horizontálne polohy každého kaktusu
int first_cactusx[CACTUS_COUNT]
1. polia, ktoré obsahujú aktuálne pozície každého kaktusu
int cactusx[CACTUS_COUNT]
int cactusy[CACTUS_COUNT]
## Zdroje
Pro účely naprogramování hry jsem jako příklad a základ použil aktivitu 3 "Tomáš a Juraj". Při tvorbě této hry jsem využil i všechny dostupné informace a materiály ze stránky předmětu programování.
### ZAP
Hru od ZAP som nepoužila, pretože sa vôbec nepodobá tej, ktorú momentálne mám.