Skip to content
Snippets Groups Projects
README.md 1.7 KiB
Newer Older
Jakub Nedbal's avatar
Jakub Nedbal committed
**Semestrální práce: Hra Snake**
Jakub Nedbal's avatar
Jakub Nedbal committed


Jakub Nedbal's avatar
Jakub Nedbal committed
**Popis Zadání**
Jakub Nedbal's avatar
Jakub Nedbal committed
- Tento projekt představuje implementaci klasické hry Snake. Hra je navržena pro spuštění v terminálovém okně. Cílem hry je ovládat hada, který se pohybuje po herní ploše, a snažit se sníst co nejvíce ovoce, čímž se had prodlužuje a hráč získává body. Hra končí, pokud se had střetne sám se sebou. Po dokončení hry se uživateli vypíše dosažené skóre a čas za který to odehrál.
Jakub Nedbal's avatar
Jakub Nedbal committed

Jakub Nedbal's avatar
Jakub Nedbal committed
**Popis Implementace** 
- Hra je implementována jako vícevláknová aplikace v C++. 
Jakub Nedbal's avatar
Jakub Nedbal committed

Jakub Nedbal's avatar
Jakub Nedbal committed
**Vlákna** : InputThread(řeší vstupy od uživatele), MainThread(GameLoop,Logika a vykreslování), TimerThread(Počítá odehraný čas).

Hlavní funkce hry zahrnuje:
Jakub Nedbal's avatar
Jakub Nedbal committed

- Logiku hry: Kontroluje pohyb hada, detekci kolizí a skórování.

- Ovládání hada: Implementováno ve třídě InputHandler, která čte uživatelský vstup z klávesnice ve vlastním vlákně.
- Časování: Třída Timer je použita pro měření času uplynulého od začátku hry.
Jakub Nedbal's avatar
Jakub Nedbal committed

**Funkčnost a Ovládání Aplikace**
Jakub Nedbal's avatar
Jakub Nedbal committed

Jakub Nedbal's avatar
Jakub Nedbal committed
Hra je ovládána pomocí kláves:
Jakub Nedbal's avatar
Jakub Nedbal committed
- W pro pohyb hada nahoru.

- S pro pohyb hada dolů.

- A pro pohyb hada doleva.

- D pro pohyb hada doprava.
- U pro okamžité ukončení hry.

Pro spuštění hry stačí spustit sestavený spustitelný soubor v terminálovém okně. Hra obsahuje také argument --help, který zobrazí informace o ovládání a pravidlech hry.


**Dr. Memory**

Po spuštění Dr.Memory jsem dostal tento výsledek :

Jakub Nedbal's avatar
Jakub Nedbal committed
![Result](drmemoryresult.png)

Jakub Nedbal's avatar
Jakub Nedbal committed
Na internetu jsem se dohledal informace, že jsou tyto problémy zaviněné tím, že používám globální proměnné, které jsou deklarované v Globals.h. S výsledkem jsem mimo to spokojený.