Programovanie 4 - Java / Letný semester 2023/2024

Projekt

Proj24-P6 - Štvorčeková sieť

Vytvorte hraciu plochu v tvare štvorčekového papiera konkrétnych zvoliteľných rozmerov, na ktorom môžete vyznačiť farebný geometrický útvar, napr. trojuholník, štvoruholník, ... Na tejto hracej ploche môže dieťa riešiť nasledujúce úlohy:
rôznymi farbami nakresli všetky možné troj-/štvor-uholníky do hracej plochy. Symetrické (podľa akéjkoľvek zhodnej symetrie) sa počítajú len raz, preto treba okrem rozmerov štorčekového papiera kontrolovať aj symetrie útvarov.

téma pochádza z dielne prof.Hejného, obrázky z učebnice Matematika pro 4.ročník ZŠ - pracovní sešit, www.fraus.cz

Autor Peter Borovanský
Študenti pracujúci na zadaní Rudolf Lörinc Artemii Kaliadin Heorhii Rudyi
Hra o korupcii

Hru hrajú dvaja hráči, alebo hráč proti počítaču, striedavo ťahajú. V šesťuholníkovej sieti hráč otáča svoje kamene vždy o 60 stupňov v smere hodinových ručičiek, nie naopak. Na políčko, na ktoré namieri, to skorumpuje, a v tom istom ťahu sú tranzitívne skorumpované aj ďašie políčka, treba zahrať, hneď pochopíte. Vyhráva hráč, ktorý prvý skorumpuje 70% hracej plochy.

Zdroj/online: https://kbhgames.com/game/corruption-2

Hodnotenie:

  • šesťuholníková grafika
  • korektné šírenie korupcie po hracej ploche
  • možnosť kedykoľvek prerušiť a uložiť stav hry, a možnosť pokračovať v hre
  • rôzne tvary hracieho priestoru, viď online verzia
  • verzia dvoch hráčov a verzia hráč-počítač (nie triválna stratégia počítača je potrebná na plný počet bodov za projekt).
Autor Peter Borovanský
Študenti pracujúci na zadaní Michal Vančo Pavol Lucina
Bubble sort puzzle

Obr

Bubble sort puzzle je hra, ktorú určite väčšina z vás pozná. Cieľom hry je preusporiadať guľôčky do takej konfigurácie, aby v jednej skúmavke boli len guľôčky rovnakej farby, pričom platia nasledujúce pravidlá: skúmavka má obmedzenú veľkosť, na guľôčku konkrétnej farby vieme položiť len guľôčku rovnakej farby, do prázdnej skúmavky vieme dať ľubovoľnú guľôčku.

Bodovanie:

  • (2 body) Príprava datasetu – aspoň 3 levely, načítanie datasetu.
  • (2 body) Úvodná stránka hry - užívateľ si zvolí level hry, načítanie hry (popis nižšie).
  • (6 bodov) Zobrazenie hry a funkcionalita – pekné vykreslenie levelu a správna funkcionalita presúvania guľôčok (ak sa užívateľ pokúsi vykonať zakázaný ťah, prostredie mu to nedovolí), existuje viacero verzií tejto hry (napr. prelievanie tekutiny) čiže fantázii sa medze nekladú a vizualizácia je na vás. Detekcia ukončenia hry (hráčovi sa zobrazí hláška o úspešnom prekonaní levelu).
  • (2 body) – Uloženie a načítanie rozohranej hry (hráč si môže začatú hru uložiť a neskôr aj načítať z úvodnej stránky). Hráč vie hru ukončiť a vrátiť sa na úvodnú stránku.
  • (1 bod) – Počítanie ťahov hráča (presunov guľôčky), zobrazovanie počtu ťahov.
  • (2 body) – Pre každý level je možné zobraziť tabuľku Top 10 skóre. Po prejdení levelu si hráč zadá svoje meno a jeho výsledok sa zaradí do tabuľky.
Autor Peter Borovanský
Študenti pracujúci na zadaní Viktória Špaková Jozef Filip Natália Chanová
Dobble

obr

Dobble je hra zameraná na postrehy hráčov. Obsahuje 55 kartičiek a dokonca až 57 symbolov. Na každej kartičke je 8 symbolov a každé 2 kartičky majú PRÁVE jeden symbol rovnaký. Existuje viacero verzií tejto hry, my budeme hľadať spoločný symbol medzi dvoma kartičkami. Keďže za generovaním kartičiek sa skrýva zložitejšia matematika, budeme si generovať vlastné kartičky jednoduchším spôsobom.

Bodovanie:

  • (2 body) Úvodná stránka - Užívateľ si vyberie level hry. Normal – 57 symbolov, 8 symbolov na kartu alebo Kids – 31 symbolov, 6 symbolov na kartu. Užívateľ si zvolí počet kôl v hre (koľko dvojíc musí hľadať – min. 5).
  • (3 body) Generovanie dvojíc kariet s práve jedným spoločným symbolom. Bolo by dobré, aby nemali všetky dvojice rovnaký spoločný symbol.
  • (6 bodov) Zobrazenie a funkcionalita – vykreslenie kariet na hracej ploche a možnosť klikania na symboly. Zobrazovanie symbolov na kartách v rôznych veľkostiach a natočeniach.
  • (2 body) – Registrovanie kliknutého symbolu. Za správne zvolený symbol +1 bod, za nesprávne -1 bod (a ide sa na ďalšiu dvojicu). Po prejdení hry sa hráčovi zobrazí jeho úspešnosť.
  • (2 body) – Na úvodnú stránku sa pridá voľba módu hry: buď vyššie spomenuté bodovanie +1/-1 alebo hra na X životov. Počet životov môžete zvoliť podľa počtu kôl alebo nejaké rozumné číslo. Hráč sa môže v hre pomýliť najviac toľkokrát koľko má životov. Zobrazí sa mu hláška buď o prehre alebo o zvládnutí hry.
Autor Peter Borovanský
Študenti pracujúci na zadaní Samuel Sokol Adam Škoruba Jakub Fraňo
Goblíci jedlíci

obr

Goblíci jedlíci je hra podobná piškvorkám. Avšak goblíci (príšerky) sa môžu aj navzájom zjesť. Každý hráč má 6 goblíkov: 2 malých, 2 stredných a 2 veľkých. Platí jediné pravidlo: väčší goblík môže zjesť menšieho (veľký stredného, veľký malého, stredný malého). Hrá sa na klasickej mriežke 3x3 dovtedy, kým niekto nevyhrá. Ťahy: Hráč buď položí nepoužitú figúrku niekde na plochu alebo premiestni figúrku na ploche.

Bodovanie:

  • (2 body) Zobrazenie hracej plochy a figúrok oboch hráčov.
  • (6 bodov) Správna funkcionalita hry – presúvanie figúrok, položenie väčšieho goblíka na menšieho (menšieho nesmie byť vidno), ak hráč presunie väčšieho goblíka a menší bol pod ním, tak menší tam ostane.
  • (1 bod) – Zobrazovanie hráča, ktorý je na ťahu.
  • (2 body) – Detekcia ukončenia hry/víťaza (riadok, stĺpec alebo diagonála).
  • (4 bodov) – Za jedného hráča bude hrať počítač, vymyslieť stratégiu ťahov.
Autor Peter Borovanský
Študenti pracujúci na zadaní Michal Tomášik Adam Gostič Juraj Povinec
Proj24-L5 3D Kartovka

Kartové hry sú sice z funkčného hľadiska 2D, no v poslednom období je moderné robiť ich v 3D grafike. Vieme ich vďaka tomu obohatiť použitím pôsobivo vyzerajúcich 3D modelov, efektov a 3D-feel pôsobi na hráča viac realisticky, akoby karty naozaj držal v ruke. Skúste si v tomto projekte vytvoriť hru na spôsob GWENTu v JavaFX 3D.

Bodovanie:

  • [5 body]: Základná funkcionalita hry: 
    • Dvaja hráči, každý má svoj balík kariet (decky môžete načítať napr. z textových súborov), na začiatku sa náhodne rozdajú karty.
    • Hráči sa striedajú na ťahu, riešime iba lokálny multiplayer. Môžete to realizovať striedaním "viditeľnosti" kariet na ruke pri dolnom/hornom okraji obrazovky - keď je na ťahu protihráč, nepozerám sa na monitor. Ťah hráča pozostáva z vyloženia karty.
    • Základná logika GWENTu - čiže karty jednotiek sa vykladajú do 3 radov, celková sila sa sumuje, hrá sa na 3 kolá...
    • Môžete použiť textúry kariet napr. z https://github.com/matt77hias/Gwent
  • [2 bod]: Podobne ako v MTG Arena, pri vyložení silnej jednotky sa nad kartou na pár sekúnd vyrenderuje 3D model jednotky, ilustrácia viď. obrázok v prílohe úlohy. Vhodné 3D modely (aspoň 3) nájdete na internete.
  • [1 bod]: Implementujte funkciu akčných kariet s počasím (mráz/hmla/dážď), ktoré ovplyvňujú jednotlivé rady jednotiek. 
  • [2 bod]: Rendering 3D animovaného particle efektu pri zahratí karty s počasím nad ovplyvneným radom jednotiek (objavte vhodný tutoriál, napr. https://www.youtube.com/watch?v=vLcJRm6Y72U). 
  • [2 bod]: Vytvorte aspoň 3 zaujímavé 3D scény/stoly, na ktorých sa bude hra odohrávať. Buďte kreatívni, okrem pekného 3D modelu stola/krajiny môžete rozmiestniť aj ďalšie objekty (mince, poháre, respektíve stromy a barely, viď. ilustračný obrázok).
  • [2 bod]: Po kliknutí na 3D kartu sa priblíži a hráč si ju bude môcť "otáčať" v 3D a prezrieť zo všetkých strán, aj s prípadným 3D modelom, ktorý sa na nej renderuje. Po ďalšom kliknutí sa hra vráti z tohto náhľadu do bežného módu. 
  • [1 bod]: Bonus za celkový dojem, originálne nápady, či funkcionalitu navyše. Môžete získať napr. dorobením ďalšej funkcionality GWENTu, ako abilities jednotiek (Muster, Morale Boost atď.) a ďalších akčných kariet (Scorch, Decoy...). Alebo vytvorte GUI editor deckov. Prípadne prídite s vlastnými nápadmi na vylepšenie.

Pre uznanie ako RP je potrebné splniť všetky podúlohy aj s bonusom (teda získať 15 bodov)!

Poznámka: asi vám dobre poslúži zoznam videí JavaFX3D - YouTube.

Autor Lukáš Gajdošech
Študenti pracujúci na zadaní Gabriel Kožuch
Fanorona

Fanorona je národná hra Madagaskaru, ktorá sa hrá na hracej doske 5x9, ktorá okrem pravoúhlej siete obsahuje aj šikmé cesty. Hráči s kamenmi dvoch farieb striedavo posúvajú kamene o ploche, pričom cieľom je získať všetky súperové kamene. Toto je iniciálna pozícia:

Pravidlá hry:

Hráči sa pohybujú striedavo, začínajúcim hráčom sú biele figúrky. Existujú dva druhy pohybov:
  • Ťah zajatie - paika - pozostáva z presunu jedného kameňa do susedného bodu pozdĺž ľubovoľnej nakreslenej čiary. Ťah zajatia má za následok odstránenie jednej alebo viacerých figúrok protivníka. Ťah zajatia je povinný, t. j. ak hráč, ktorý je na ťahu, môže zajať nejaké súperové figúrky, musí ich zajať. Existujú dva druhy pohybov: priblížením alebo vzdialením.
    • Priblíženie – ak hráč presunie jednu zo svojich figúrok do určitého bodu a ďalší bod na tej istej línii je obsadený súperovou figúrkou, potom je súperova figúrka zajatá. Rovnako sú tiež zajaté všetky po sebe idúce figúrky súpera nachádzajúce sa na tej istej línii (napr. pokiaľ nedôjde k prerušeniu prázdnym miestom alebo vlastným kameňom).
    • Vzdialenie - ak hráč pohne jednou zo svojich figúrok z nejakého bodu a tým sa vzdiali od súperovej figúrky na tej istej línii je obsadený, potom je súperova figúrka zajatá a všetky nasledujúce figúrky súpera umiestnené na tej istej línii sú tiež zajaté (ako napr. pokiaľ nedôjde k prerušeniu prázdnym miestom alebo vlastným kameňom).
      Ak hráč môže urobiť ťah priblíženia lebo vzdialenia súčasne, môže si vybrať, ktorý z nich bude hrať. Po ťahu zajatia - paika - môže hráč, ale nemusí pokračovať ďalším ťahom s nasledujúcimi obmedzeniami:
    • Figúrka nesmie prísť do toho istého bodu dvakrát počas toho istého ťahu.
    • Figúrka nemôže urobiť dva po sebe idúce kroky zajatia v rovnakom smere. 
 
 
 
Hodnotenie:
  • grafické prevedenie hracej plochy
  • korektná implementácia všetkých pravidiel hry
  • animacia/znázornenie pohybu kameňov
  • možnosť kedykoľvek si uložiť aktálny stav hry, a opäť v ňom pokračovať.
Autor Peter Borovanský
Študenti pracujúci na zadaní Vladimír Tischler Vladyslav Peresada Liliia Orlova
SkipList illustračné demo

SkipList je alternatívna dátová štruktúra k vyváženým stromom. Zrejme ste ju zatiaľ nepreberali na ADŠ. Cieľom projektu je:

- naštudovať si a pochopiť dátovú štruktúru, najlepšie tým, že naprogramujete vlastnú nevizuálnu verziu,

- následne potom sa zamyslíte, ako vizualizovať operácie nad touto dátovou štruktúrou.

Tu je ilustračné video: https://www.youtube.com/watch?v=aRaTSGzJfqY

Aplikácií, ktoré robia podobné demonštrácie nájdete na nete viacero.

Nutnou podmienkou je, že výsledné demo musí byť interaktívne, s možnosťou voľby postupnosti vykonávaných operácií a aj možnosť voľby hodnôt.

Autor Peter Borovanský
Študenti pracujúci na zadaní Nikto nepracuje na tomto zadaní.
Splay Tree ilustračné demo

SlayTree je alternatívna dátová štruktúra k vyváženým stromom. Zrejme ste ju zatiaľ nepreberali na ADŠ. Cieľom projektu je:

- naštudovať si a pochopiť dátovú štruktúru, najlepšie tým, že naprogramujete nevizuálnu verziu,

- následne potom sa zamyslíte, ako vizualizovať operácie nad touto dátovou štruktúrou.

Ilustračné video: https://www.youtube.com/watch?v=nKZWL9hbcI4

Aplikácií, ktoré robia podobné deomnštrácie nájdete na nete viacero.

Nutnou podmienkou je, že výsledné demo musí byť interaktívne, s možnosťou voľby postupnosti operácií a hodnôt.

---

Splay strom je binárny vyhľadavací strom. Pre každý jeho vrchol platí, že hodnoty v ľavom podstrome sú menšie ako v danom vrchole a v pravom sú všetky hodnoty väčšie ako hodnota vrchola.
Splay strom má navyše vlastnosť, že prvky, ktoré boli použité, "vybublú" až na koreň stromu. Existujú tri typy rotácií:

    • zig-zig rotácia - aj ja aj môj otec sme ľavými (pravými - zrkadlová operácia) synmi

 

    • zig-zag rotácia - ja som ľavý syn a môj otec je pravý syn (a opačne pre zrkadlovú operáciu)

 

    • zig rotácia - môj otec nemá otca



Autor Peter Borovanský
Študenti pracujúci na zadaní Aliaksei Yesipovich Daniela Halmová Daniil Erin
Proj24-J1 - Moorhuhn

Naprogramujte kópiu jednej z najznámejších hier zo začiatku 21. storočia – Moorhuhn. Pre ukážku sa môžete zahrať napríklad tu: https://www.zahraj.sk/online-hra/moorhuhn-remake/. Pointou je v danom časovom limite vystrieľať čo najviac sliepok, ktoré sa náhodne zjavujú alebo lietajú na obrazovke.

Posun obrazovky riešiť nemusíte, taktiež obrázky a zvuky nemusia byť identické s tými v hre.

Bodovanie:

[2 body] – Hlavné menu s možnosťou play/quit

[3 body] – Vykreslenie levelu, terča na strieľanie, ukazovateľa skóre, času a počtu nábojov

[2 body] – Náhodné generovanie statických sliepok na obrazovke (niekde na zemi)

[3 body] – Náhodné generovanie lietajúcich sliepok na obrazovke (idú z jedného kraja obrazovky k druhému, ak ich hráč netrafí, zmiznú za okrajom)

[2 body] – Počítanie skóre za zabitie sliepky, ktorá po zabití zmizne (napríklad podľa vzdialenosti sliepky, tá sa určí veľkosťou obrázka)

[2 body] – Možnosť prebíjania (nejakou klávesou) a časovač pre ukončenie hry

[1 bod] - Bonusová funkcionalita, viď nižšie

Ako bonusová funkcionalita sa myslí dodatok, ktorý obohacuje hru v nejakom zmysle. Fantázii sa medze nekladú, vymyslieť môžte hocičo hodné bodu. Príklady takýchto funkcionalít:

- prehratie zvukov pri prebití či výstrele

- rôzne druhy sliepok s rôznymi vlastnosťami a bodovaním

- iné funkcionality hodné bodov

Z bonusových funkcionalít sa ráta len jedna do bodu, ktorý garantuje, ale v prípade, že stratíte či nezískate nejaký bod v inej z úloh, môžte získať ešte jeden bod za ďalšiu funkcionalitu navyše (maximálne ale stále 15).

Vypracované úlohy a bonusové funkcionality popíšte do súboru readme.txt

Autor Jozef Kubík
Študenti pracujúci na zadaní Martin Klokočík Ondrej Babinský Jakub Kováč
Proj24-J2 - Tetris

Úplna klasika, kto ako mladý nehral, tak ani netuší, o čo prišiel - príklad tu https://www.kvizmajster.sk/tetris/

Začína sa prázdnou hraciou plochou danej veľkosti, pričom je obdĺžniková s tým, že výška je o dosť väčšia ako šírka. Z vrchu hracej plochy postupne padajú rôzne náhodne vybrané tvary, ktoré keď dopadnú, zostanú na mieste. V našej verzii sa rýchlosť padania s pribúdajúcim skóre jemne zvyšuje, nech hra nejde donekonečna. Úlohou hráča je ovládať smer a otočenie týchto tvarov tak, aby nimi kompletne zapĺňal riadky v hracej ploche - vtedy sa totižto riadok celý vymaže, a teda vznikne viac miesta pre nové tvary (a sú za to, samozrejme, body - logika určovania skóre je na vás). Hra končí, keď sa nový tvar nemá kde uložiť, resp. jeho uloženie by už zasahovalo mimo horný okraj hracej plochy. Naša verzia hry sa bude dať uložiť, a to tak, že počas hrania bude možnosť nejakou klávesou/tlačidlom hru pauznúť, a počas tejto pauzy bude môcť používateľ vybrať tlačidlom možnosť uložiť hru. Uloží sa skóre, rýchlosť padania, momentálna hracia plocha a tvar, ktorý práve padá - po načítaní hry sa nastaví rýchlosť, updatuje skóre, hracia plocha sa znova nakreslí a tvar začne padať znova.

Keďže samotné ovládanie a aj logika hry sú vcelku jednoduché, bude sa v tomto projekte dbať na vizuál. Čím pestrejšie, tým lepšie - samozrejme ale, v rámci nejakej normy. Hracia plocha má byť jasne vyznačená, padajúce tvary rozlíšené rôznymi farbami, ale dostatočne viditeľné a rozoznateľné.

V prípade, že sa rozhodnete pre túto tému a nie je vám niečo jasné, odporúčam pozrieť link vyššie, prípadne nejaký gameplay alebo mi môžte napísať.

Bodovanie:

[2 body] - Hlavné menu s možnosťami Spusti hru/Načítaj hru/Ukonči hru
[2 body] - Správne vykreslenie všetkých 7 rôznych typov blokov (S, Z, L, J, I, T a štvorec)
[5 body] - Vykreslenie hracej plochy, základná logika a funkcionalita tvarov - padanie tvarov, rýchlosť padania, premazávanie riadkov, ovládanie pozície a natočenia tvarov, ...
[1 bod] - Zobrazenie aktuálneho skóre
[2 body] - Možnosť pauznutia hry s možnosťami Pokračovať/Uložiť/Skončiť
[2 body] - Korektné ukladanie a načítanie hry
[1 bod] - Bonusová funkcionalita, viď nižšie

Ako bonusová funkcionalita sa myslí dodatok, ktorý obohacuje hru v nejakom zmysle. Fantázii sa medze nekladú, vymyslieť môžte hocičo hodné bodu. Príklady takýchto funkcionalít:
- rozdelenie hry na rôzne levely - každý level má bodovú hranicu, ktorú keď hráč dosiahne, vyhrá - levely môžu (nemusia) mať predpísanú postupnosť tvarov, ktoré padajú, obmedzenú množinu tvarov, ktoré padajú či iné obmedzenia
- zvuky pri padaní tvarov, premazávaní riadkov, prehre...
- možnosť kedykoľvek prepnúť medzi easy/medium/hard módom - tie sa líšia obmedzením množiny tvarov a iným zrýchlením padania tvarov
- iné funkcionality hodné bodov

Z bonusových funkcionalít sa ráta len jedna do bodu, ktorý garantuje, ale v prípade, že stratíte či nezískate nejaký bod v inej z úloh, môžte získať ešte jeden bod za ďalšiu funkcionalitu navyše (maximálne ale stále 15).

Vypracované úlohy a bonusové funkcionality popíšte do súboru readme.txt

Autor Jozef Kubík
Študenti pracujúci na zadaní Martin Demovič Eva Ivanusyková Lucia Benovicsová
Proj24-J3 - Bomberman NES

Bombermana sa hralo asi každé dieťa. Poraziť súrodenca či kamaráta bol vždy najväčší pôžitok. Avšak skúsili ste si ho zahrať aj v old single-player verzii? Jeden z najstarších takéhoto druhu je Bomberman pre Nintendo, ktorého vznik sa datuje na rok 1985. Skúste si ho zahrať pomocou emulátoru na https://www.retrogames.cz/play_085-NES.php a ukážte, že naprogramovať kópiu takejto starej hry pre vás nebude problém!

Bodovanie:

[3 body] – Hlavné menu s možnosťou play/quit/choose level/load level a bind keys (teda nastavovanie akčných kláves - nech trochu vylepšíme tú starú verziu)

[3 body] – Načítanie a vykreslenie herného levelu zo súboru (prekážky, bomberman a nepriatelia)

[1 bod] – Korektné ovládanie (pohyb, kladenie bomby) a explózia bomby do všetkých strán, rozsah explózie je na vás

[3 body] – Overovanie stavu hry – teda koniec hry pri vybuchnutí,  narazení do nepriateľa alebo vypršaní časového limitu, ako aj ničenie nepriateľov pomocou bômb, rátanie životov...

[2 body] – Rôzne typy nepriateľov (pomalý, rýchly...) s pohybom, ktorý nech nie je úplne náhodný (logika, ľubovoľné hlúpa či múdra je na vás)

[1 bod] -  Rôzne zvuky – napríklad výbuch bomby, zobranie bonusu...výber je na vás

[1 bod] – Bonusy v hre (napríklad pri rozbití náhodného kameňa, alebo zničení dvoch nepriateľov naraz sa môže zväčšiť rozsah explózie bomby)

[1 bod] – Ukladanie a načítavanie hry (teda číslo levelu)

Autor Jozef Kubík
Študenti pracujúci na zadaní Mária Cerulíková Martin Krivosudský Martin Vitan
Proj24-J4 - Tanky

V tomto projekte spravíme kópiu hry tanky, ale nie klasických, ktoré pozná každý – tie naše budú omnoho viac založené na NÁHODE. Originál sa môžete zahrať na https://tanktrouble.com/ , veľmi odporúčam sa najskôr zahrať pre pochopenie pravidiel.

Naše Tanky bude multiplayerová hra pre dvoch hráčov, ovládanie necháme na klasiku, teda WSAD + medzerník, šípky + enter. Cieľom hry bude, samozrejme, zničiť protivníka, ale hra bude mať nasledujúce pravidlá:

  1. V každom kole budú proti sebe bojovať dva tanky. Výsledok kola môže byť výhra/prehra, ale aj remíza (o tom nižšie).
  2. Hra sa skončí, ak jeden z hráčov vyhrá 10 (prípadne 5, počet je na vás) kôl – vtedy sa stáva víťazom, súper porazeným.
  3. Na začiatku každého kola sa vygeneruje NÁHODNÁ mapa. Tá pozostáva z uličiek, ktoré môžu byť aj slepé (viď obrázok či hra). Veľkosť mapy je tiež NÁHODNÁ, ale daná nejakým rozumným rozsahom
  4. Následne sa tanky umiestnia na NÁHODNÚ pozíciu na mape. Jediná podmienka je, že sa nemôže stať, že by tanky nemohli na seba strieľať, teda aspoň jeden by bol v jednej slepej uličke. Na obrázku vyššie teda nie je povolený prípad, že jeden z tankov by sa zobrazil úplne hore vľavo či v slepej uličke v strede dole.
  5. Každý tank môže mať v danom čase vystrelených maximálne 5 (prípadne 3) základných nábojov. Každému náboju trvá nejakú dobu (tú zvolíte vy), kým pominie, a teda dokým náboj existuje, odráža sa od stien a ničí tak súpera, ako aj tank, ktorý ho vystrelil.
  6. NÁHODNÝCH zriedkavých intervaloch sa môžu na mape objaviť rôzne bonusové itemy – čo budú predstavovať, je na vás, príklady sú zrýchlenie/spomalenie, laser (nahradí náboje, po vystrelení dokáže prejsť cez všetky steny), rakety (prechádza sama bludiskom za súperom aby ho zničila – ak ho do 3 sekúnd nenájde, otočí sa a pôjde po tom, čo ju vystrelil), míny a iné...Treba dbať na to, že po pominutí ich efektu sa stav vráti do normálu, teda sa načíta 5 nábojov, alebo sa upraví späť rýchlosť.
  7. Vo chvíli, keď je jeden z tankov zničený, spustí sa časovač (napríklad na 3 sekundy), počas ktorého musí ešte druhý tank prežiť. Ak prežije vyhráva, ak je zničený, kolo je vyhlásené za remízu a žiaden hráč si nepripisuje bod.

Na grafiku sa dbať až tak nebude, a teda modely nemusia byť identické s originálom. Stačí, ak sa bude dať rozoznať, čo predstavuje zem/prekážky/náboje/itemy/tanky a v súlade s fyzikou sa to bude hýbať.

Bodovanie:

[2 body] – Hlavné menu s možnosťami play/quit

[4 body] – Vygenerovanie správnej mapy

[2 body] – Vygenerovanie správnych začiatočných pozícií tankov

[3 body] – Pohyb a rotácia tankov, pohyb a odrážanie nábojov, zvuky výstrelov, výbuchov

[1 body] – Počítanie skóre, vyhodnocovanie kola a celkového víťaza

[3 body] – Náhodné generovanie  bonusových itemov a ich funkčnosť

Autor Jozef Kubík
Študenti pracujúci na zadaní Miroslav Klieštik Viktória Terebová Matej Gornál
Proj24-J5 - Plants vs Zombies

Hit od vydavateľa PopCap, ktorý sa stal večnou klasikou a hralo ho skoro každé dieťa - a my ho teraz skúsime napodobniť. Pre tých, ktorí náhodou túto hru ešte nevideli, je link tu: https://en.wikipedia.org/wiki/Plants_vs._Zombies  alebo množstvo videí či článkov na internete.

Pointou hry je ubrániť sa od postupných vĺn zombií. Nie je to však typický "tower defense" štýl, keďže hra vyžaduje sústavnú pozornosť hráča hlavne počas vĺn a nie pred nimi. Každý level začíname s prázdnou mapou (v originálnej hre to bol trávnik) s piatimi cestami. Tie vedú horizontálne sprava doľava, teda tým smerom pôjdu nepriatelia - zombie. Pred každou vlnou nepriateľov si môžme zvoliť z obmedzeného výberu určitý počet druhov rastlín, ktoré si do prichádzajúcej vlny zoberieme. Po potvrdení výberu začína vlna.

V každej vlne začíname s určitým počtom slnečných lúčov (povedzme 100), za ktoré môžeme sadiť rôzne typy rastlín. Lúče sa postupne počas vlny dopĺňaju zbieraním (na mape sa raz za čas objaví 50 lúčov náhodne alebo z rastliny, pozbierame ho kliknutím naň). Rastliny môžme zasadiť len v počte 1 kus na 1 políčko (políčok je počet riadkov * 9 = 45).  Každá rastlina ma po zasadení iné schopnosti a má nám pomôcť prežiť vlnu nepriateľov (rastliny môžu strieľať na zombie, žrať zombie, generovať slnečné lúče, slúžiť ako mína atď...).

Nepriatelia sa postupne zjavujú v pravej časti obrazovky v rôznych riadkoch a idú postupne doľava. Ak nejaký nepriateľ dosiahne ľavú stranu obrazovky, tak sme prehrali. Títo nepriatelia sú zväčša pomalí (sú to predsa zombie), napriek tomu treba voliť dobre stratégiu aby hráča ich počet neprevalcoval. Ak počas svojej chôdze nepriateľ narazí na nejakú rastlinu, musí ju najskôr zožrať - čo môže trvať rôzne dlho v závisloti od rastliny.

Každý typ zombie aj rastliny bude mať dva hlavné aspekty - špeciálne schopnosti a HP. HP je počet úderov/nábojov, ktoré znesie (môžme nastaviť napr. max 1 úder/výstrel za sekundu), schopnosti sú to, čo dané typy rozlišuje vo funkcii schopnosti rastlín boli spomenuté vyššie, zombie sú nižšie).

Level končí po prežití celej vlny, počas ktorej sa zjaví určitý počet nepriateľov alebo po našej prehre. Počet nepriateľov a ich typ závisí od levelu (typy zombie môžu byť napríklad klasický pomalý, rýchly, zombie čo dokáže preskočiť prvú rastlinu, na ktorú natrafí, obrnený zombie).

V tomto projekte sa posnažíme čo najviac napodobniť túto hru, pričom grafika nebude najdôležitejším aspektom (ale stále aspektom bude!)

V prípade, že sa rozhodnete pre túto tému a nie je vám niečo jasné, odporúčam pozrieť link vyššie, prípadne nejaký gameplay alebo mi môžte napísať.

Bodovanie:

[2 body] - Hlavné menu s možnosťami Play/Quit (príp. Choose Level)

[2 body] - Vykreslenie levelu s pomocnými informáciami v hornej časti obrazovky (druhy rastlín, počet slnečných lúčov, zostávajúci počet nepriateľov...)

[2 body] - Plynulé a správne ovládanie myšou (kliknutie pre zobratie lúča, drag-and-drop pre zasadenie rastliny)

[3 body] - Generovanie, pohyb, vizuál a funkčnosť zombie nepriateľov - tí prídu z pravej strany obrazovky a hýbu sa na druhú stranu, kde zmiznú, pričom ak narazia na rastlinu pred nimi, musia ju najskôr zožrať. Každý typ zombie za bod, maximum ale 3 body

[3 body] - Rastliny - funkčnosť (špecifické vlastnosti), vizuál. Každá rastlina za bod, maximum ale 3 body

[1 bod] - Viac levelov s rôznymi nastaveniami počtu a typov nepriateľov a rastlín

[1 bod] - Správne vyhodnotenia konca levelu (prehra/výhra)

[1 bod] - Bonusová funkcionalita, viď nižšie

Ako bonusová funkcionalita sa myslí dodatok, ktorý obohacuje hru v nejakom zmysle. Fantázii sa medze nekladú, vymyslieť môžte hocičo hodné bodu. Príklady takýchto funkcionalít:
- highscore časov prejdenia levelov spolu s jeho ukladaním do súboru
- rôzne veľkosti levelov, prekážky na políčkach
- zvuky sadenia, jedenia rastlín a strieľania, príp. výbuchov (v rozumnom množstve aby sa moc neprehlušovali)
- iné funkcionality hodné bodov

Z bonusových funkcionalít sa ráta len jedna do bodu, ktorý garantuje, ale v prípade, že stratíte či nezískate nejaký bod v inej z úloh, môžte získať
ešte jeden bod za ďalšiu funkcionalitu navyše (maximálne ale stále 15).

Autor Jozef Kubík
Študenti pracujúci na zadaní Matej Vereš Johanka Jakubove Lukáš Podskalka
Double pendulum

V tejto ulohe budete programovat simulaciu dvojiteho kyvadla (https://en.wikipedia.org/wiki/Double_pendulum). Dvojite kyvadlo je zlozene z dvoch kyvadiel tak, ze na volnom konci prveho kyvadla je pripojene druhe. Pohyb, ktory opisuje spicka druheho kyvadla, je chaoticky a zavisi od pociatocnych podmienok. Tento pohyb je popisany pomocou diferencialnych rovnic. Vasou ulohou bude vytvorit animaciu tohto procesu s nastavitelnymi parametrami.

 

 

 

  • [2] Vykreslenie kyvadla
  • [5] Fyzika
  • [2] Nastavenie zaciatocnych podmienok
  • [2] Kreslenie drahy kyvadla
  • [2] Tlacidlo strop, play a reset
  • [2] Moznost menit nastavenia pocas behu (dlzka kyvadla, start)

 

Autor Daniel Kyselica
Študenti pracujúci na zadaní Matej Budoš Damian Harenčák
Fourier series visualization

Fourierove rady (FS) sa daju vyuzit na aproximovanie krivky podobne ako cez polynomy.  Napriklad Fourierove rady 4-teho stupna najdu 4 sinusoidy ktore najlepsie popisuju danu krivku. Kedze FS vedia pracovat aj s komplexnymi cislami (komplexne cislo a + bi sa da zobrazit ako bod [a,b] v kartezianskej sustave) vieme ich vyuzit na aproximovanie lubovolneho tvaru kresleneho ciarami. Vytvorte program, ktory pre zadany rad Fourierovych radov vykresli aproximaciu tvaru greckeho pismena PI. Podrobne vysvetlenie a inspiraciu najdete vo videu 3Blue1Brown: https://www.youtube.com/watch?v=r6sGWTCMz2k&ab_channel=3Blue1Brown

(ilustracny obrazok pre efekt, v podstate nema nic s ulohou)

  • [1] Zobrazenie Menu - start, stop, restart, nastavenie radu
  • [1] Vykreslenie tvaru PI pre aproximaciu
  • [3] Vypocet Fourierovych radov
  • [3] Vykreslenie aproximacie tvaru PI
  • [5] Animacia vykreslenia (necham na tvorivosti)
  • [2] Moznost vyuzit jeden dalsi lubovolny vzor okrem PI
Autor Daniel Kyselica
Študenti pracujúci na zadaní Andrej Špitalský Michal Jaroš
Icy Tower

Ikonicka hra Icy tower kde sa snazite vyskakat co najvysie vo vezi skor ako vas dobehne obrazovka alebo spadnete mimo nej. Charakter je ovladany sipkami doprava a dolava a skace sa pomocou medzernika. Ak skoci charakter a odrazi sa od steny nasledne ak hned pri dalsom dotyku platformy skoci spravi tzv. Mega skok. Ak sa pohybujeme dlhsie do jednej strany charakter zrychli a potom je jeho skok vyssi. Po kazdych dosiahnutych 50 vyskovych metroch sa pohyb obrazovky zrychli. Gameplay video: https://www.youtube.com/watch?v=dup-U7jSHzs&t=2s&ab_channel=TSMChannel

  • [1] Menu  + Tabulka skore
  • [3] Vykreslenie prostredia
  • [3] Ovladanie zakladneho pohybu
  • [2] Mega skok
  • [2] Pohyb obrazovky
  • [2] Animacia mega skoku
  • [2]  Zrychlenie pri neprerusenom pohybe
Autor Daniel Kyselica
Študenti pracujúci na zadaní Tomáš Iványi Matej Krajčovič
Planet simulator

Planety sa pohybuju okolo Slnka zjednodusene kvoli posobeniu gravitacnej sily zo Slnka (tvarme sa, ze nevieme, ze existuje teoria relativity). Vytvorte simulator, ktory zobrazuje pohyb planet okolo Slnka.

Pocas animacie sa pozerame na sustavu akoby zhora. Simulator predpoklada, ze hviezda Slnko v strede je nehybna. Planeta je definovana svojou hmotnostou a vzdialenostou od Slnka.  Uzivatel vie pridat planetu lubovolnej hmostnosti, ktora sa pohybuje po kruznici. Do systemu je mozne pridat aj objekt definovany hmotnostou, poziciou a pociatocnou rychlostou - takto vytvoreny objekt sa moze pohybovat po elipse, parabole alebo hyperbole.

 

  • [1] Scena Slnko a planeta
  • [3] Animacia pohybu - kruhova, elipsa, parabola, hyperbola
  • [1] Zobrazenie celej drahy
  • [5] Fyzika pohybu
  • [2] Nastavitelne parametre
  • [2] Ovladanie animacie - tlacidla stop, play, reset
  • [2] Moznost pridat objekt
Autor Daniel Kyselica
Študenti pracujúci na zadaní Tibor Černák Michal Přibil
Risk hra

Klasicka strategicka hra risk v ktorej sa viacero generalov snazi svojou armadou ovladnut cely svet. Cielom projektu je vytvorit funkcnu verziu tejto hry podobne ako https://www.warzone.com/SinglePlayer?Level=21 .

 

 

  • [1] Menu [volitelny pocet hracov/ ludskych hracov]
  • [2] Vykreslenie sveta, mapa s teritoriami
  • [3] Implementovanie jedneho tahu hraca [3 fazy - pridavanie posil, utok/presun]
  • [2] Animacia tahu
  • [1] Tabulka skore
  • [3] Logika bojov
  • [3] Jednoduchy Bot

 

Autor Daniel Kyselica
Študenti pracujúci na zadaní Peter Hozlár Mykola Shulhin
Proj24-L1 3D Vesmírny simulátor

Vašou úlohou bude vytvoriť simulátor vesmírnej lode vo vesmíre, inšpirovanú klasikami ako Elite. Hráč bude lietať vo vesmíre z pohľadu kokpitu lode, ťažiť asteroidy a bojovať s nepriateľmi.

Bodovanie:

  • [1 bod]: vytvorenie prostredia pásu asteroidov. Na náhodných pozíciach sa (v rozumnom počte) spawnú asteroidy (pre jednoduchosť kocky a/alebo sféry) a v blízkosti aj nejaká planéta/planéty. Škála a vzdialenosti nemusia byť realistické, nastavte to tak, aby to bolo pre vás uveriteľné.
  • [1 bod]: Na asteroidy nájdite/vytvorte aspoň 3 rôzne variácie 3D modelu s vhodnou textúrou. Rovnako na planéty aplikujete textúry, napr. z https://www.solarsystemscope.com/textures.
  • [1 bod]: Doplňte textúru kokpitu (viď. screenshot s ukážkou). Môže to byť statický 2D obrázok/maska prekrytá cez 3D scénu.
  • [1 bod]: Pohyb lodi pomocou klávesnice (vlastne hýbete kamerou). Implementujte pohyb vo všetkých troch osiach pohybu a v jednej osi rotácie (buď hore/dole, tj. "pitch" alebo doprava doľava tj. "jaw"). Vesmírna loď má svoje momentum, smer sa nemení instante. Pamätajte si aktuálny smerový vektor, ktorý je vždy lineárnou kombináciou nejakých N posledných smerových vstupov. 
  • [2 bod]: Pokročilý pohyb, implementujte rotácie v zostávajúcich 2 osiach. Vo výsledku teda bude pohyb so všetkými 6 stupňami voľnosti.
  • [4 body]: Hráč pomocou laseru taží asteroid. Smer laseru je určený pozíciou kurzora myši, prípadne vždy smeruje dopredu podľa natočenia lode. Laser vykreslite ako čiaru/valec medzi pozíciou lode a asteroidom. Tažiť sa dá, iba pokiaľ je asteroid vo vhodnej pozícií pred ľodou a teda nastane kolízia laseru s ním, inak sa laser nevykresľuje a nič sa neťaží. Po určitom čase je asteroid vyčerpaný a zmizne. V GUI v dolnom panely zobrazujte počet naťaženého materiálu (napr. v kilogramoch).
  • [4 body]: V pravidelnom intervale sa spawnujú nepriatelia (pre jednoduchosť červené sféry), ktoré chaoticky poletujú a kradnú hráčovi asteroidy. Tj. občas sa na nejaký prichytia a po pár sekundách asteroid zmizne. Hráč môže nepriateľov zničiť pomocou svojho laseru, majú teda interne nejaký počet životov / sekúnd koľko vydržia zásah laseru.
  • [1 bod]: bonus za celkový dojem a originálne nápady. Môžete ho získať napr. premakaným GUI, lepším modelom pre nepriateľov alebo implementáciou cieľa hry, napr. zozbieraním potrebného počtu asteroidov v rámci nejakého časového limitu a výpisom víťaznej hlášky. 

Pre uznanie ako RP je potrebné splniť všetky podúlohy aj s bonusom (teda získať 15 bodov)!

Poznámka: asi vám dobre poslúži zoznam videí JavaFX3D - YouTube. Inšpirovat sa viete napr. gameplayom hry End Space.

Autor Lukáš Gajdošech
Študenti pracujúci na zadaní Bohdan Pasichnyk
2048 Cubes

Logickú hru 2048 zrejme poznáte. V nej sú kamene s hodnotami mocnín 2, a tie sa postupne zlučujú, cieľom hry je nahrať maximum bodov.

2048 Cubes je jej malá modifikácia skrížená trochu s Tetrisom. "Kocky" s hodnotami mocnín 2 padajú z vrchu, podľa pozície spúšťača. Vašou úlohou je ich aranžovať tak, aby ste nahrali najviac bodov, a zároveň čo najdlhšie prezili.

Bodovanie:

  • [4 body] padajúce bloky s hodnotami 2,4,8,16, ... možnosť nastavenia pozície z ktorej blok padá
  • [2 body] spájanie blokov s rovnakými hodnotami do dvojnásobných, počítanie skóre
  • [5 body] bloky sa správajú ako telesá
    • pri páde zrychľujú
    • po dopade sa odrážajú
    • medzi sebou sa odrážajú
  • [2 body] particle efekt
  • [2 body] úvodná obrazovka, pravidlá, rebríček najlepších 10 dosiahnutých skóre s menom hráča
Autor Peter Borovanský
Študenti pracujúci na zadaní Zdenko Németh Viera Michaela Blažíčková Štefan Beluško
Quoridor

V stolovej hre Quoridor hrajú dvaja alebo štyria hráči, ktorých úlohou je prejsť svojou figurkou z jednej strany hracej dosky na druhú skôr ako súperi, pričom do cesty si kladú prekážky. Pravidlá nájdete tu: https://en.wikipedia.org/wiki/Quoridor

Zahrajte si najprv: https://danielborowski.github.io/site/quoridor-ai/display.html

Úlohy:

  • [3 bodov] vytvorenie hracej plochy
  • [3 body] ovládanie myšou: pohyb hráča + stavanie stien
  • [1 bod] striedanie dvoch hráčov (nie proti UI)
  • [3 body] kontrola nepovolených ťahov: a) úplne zablokovanie hráča, b) stena cez stenu, c) prechod hráčom cez stenu
  • [5 bodov] netriviálna stratégia hry, a teda možnosť, že nehrajú dvaja hráči, ale hráč proti vášmu programu. Vaša stratégia nesmie generovať ilegálne ťahy, a nesmie byť úplne naivná, aby hráč mal pocit, že váš program je súperom nejakej úrovne. Táto časť je podmienkou k RP.
Autor Peter Borovanský
Študenti pracujúci na zadaní Klára Senderáková Patrik Homola Matej Miškovčík
Hidato

Hidato/Hidoku je hra, v ktorej máte prejsť štvorčekovú mriežku vypĺňajúc ju postupne číslami 1,2,3,... Krok môžete urobiť na stranou políčka alebo jeho vrcholom (teda diagonálne) na susedné políčko. Niektoré políčka však majú predpísané číslo, s ktorým na ne musíte vkročiť. Príklad zadania je vľavo na obrázku, a riešenie je vpravo.

Hidato

Úlohy:

  • [2 body] z konfiguračného súboru úlohy, vytvorte hraciu plochu, ktorá nemusí byť obĺžniková,
  • [4 body] pri riešení intuitívnym spôsobom realizujte klikanie po ploche, len na susedné políčka, pričom navštívené políčka sú indexované postupne prirodzenými číslami, musíte mať možnosť sa vrátiť a zmazať ľubovoľný počet svojich ťahov, a nesmiete prepísať zadané polia, znázornite ich inou farbou,
  • [2 body] hra musí mať gradáciu, teda 10 levelov, ktoré vás po vyriešení predchádzajúcej úlohy vedú k ďalšej, trochu ťažšej úrovni,
  • [2 bod] kedykoľvek sa rozhohratá hra dá uložiť, opäť načítať a pokračovať v jej hraní, mieria sa čas, a každá level má svoj vlastný timeout,
  • [5 bodov] Užívateľ môže naeditovať vlastné zadanie. Môže to byť v priamo v GUI, ale tiež svoj vlastný konfiguračný súbor hry, ak je dostatočne jednoduchý. Solver, ktorý je súčasťou vašej hry, povie, či zadanie je riešiteľné. Samozrejme, vami predpripravené zadania sú riešiteľné, ale užívateľ poľahky môže vytvoriť niečo, čo nemá riešenie. Pri načítaní takéhoto zadania aplikácia musí vedieť zistiť, že nemá riešenie. V tejto časti sa očakáva jemne inteligentný backtrack, a splnenie tejto časti je podmienkou k RP.
Autor Peter Borovanský
Študenti pracujúci na zadaní Matúš Ratkovský Ján Radovan Zubo Fares Marwan Kamal Bahgat Aboelsaad
Proj24-L2 Klon Minecraftu

Prvá verzia Minecraftu vznikla v roku 2009 a teraz už je hra kultom. Skúste vytvoriť jednoduchý klon v JavaFX. Bude tu voľný pohyb hráča po 3D svete, pokladanie/ničenie blokov a prípadne aj nejaký cieľ.

Bodovanie:

  • [3 body]: Pohyb hráča po 3D svete vo všetkých smeroch (ovládanie na štýl creative mode z originálu). Hráč sa na hru pozerá z pohľadu prvej posoby a hýbe sa smerom, akým je natočený.
  • [4 body]: Vytvorte aspoň 5 typov blokov (kameň, hlina, piesok, tráva, drevo) a umožnite ich pokladanie a ničenie (napríklad tlačidlami myši, môže to byť instantné, znova na štýl creative mode). Kocky budú zrejme v nejakej 3D mriežke. Môžete hráčovi povoliť umiestniť blok hocikde vo svete (zaokrúhlením na najbližšiu pozíciu v mriežke), kocky sa nemusia nadpájať tak ako v originále. 
  • [2 body]: Načítanie mapy zo vstupného súboru. Mapu môžete reprezentovať napríklad:
    0 0 1 2 0
    0 2 2 3 1
    1 2 3 4 1
    0 1 5 3 0
    kde číslo určuje počet blokov do výšky.
  • [1 bod]: Typ bloku sa pri vytváraní mapy mení podľa výšky. Na najspodnejšej vrstve je kameň, vyššie hlina, na vrchu tráva a pod.
  • [2 body]: Na náhodných miestach na povrchu mapy sa zobrazia stromy.
  • [1 bod]: Pridajte do hry nejaký cieľ. Napríklad hráč musí spojiť dva body na mape, postaviť vežu určitej výšky, zničiť X blokov daného typu a pod. (stačí jedno z toho).
  • [2 body]: Bonus za celkový dojem, vlastné prídavky. Originálny Minecraft toho má kopu, napríklad náhodné generovanie mapy, buďte kreatívni...

Pre uznanie ako RP je potrebné splniť všetky podúlohy aj s bonusom (teda získať 15 bodov)!

Poznámka: asi vám dobre poslúži zoznam videí JavaFX3D - YouTube.

Autor Lukáš Gajdošech
Študenti pracujúci na zadaní Filip Béreš Samuel Dubný Adam Zeman
Proj24-L3 Vizualizácia 3D Grafu

Ľudia ani v 21. storočí ešte stále nevyužívajú vertikálny priestor - kde sú tie sľúbené lietajúce autá, či osobné jetpacky? Skúste vytvoriť vizualizáciu 3D grafu, kde hodnotami hrán bude komodita, ktorá sa medzi uzlami vymieňa. Takýto graf môže reprezentovať napríklad futuristickú továreň, kde sa medzi oddeleniami vymieňa tovar "po vzduchu", spojenia v sci-fi meste, alebo vo väčšom merítku planéty, ktoré medzi sebou obchodujú.

Bodovanie:

  • [2 body]: načítajte vstupný graf zo súboru a uložte si ho do vhodných štruktúr. Vstupný súbor môže mať napríklad formát:
    A, 2, 5, 3
    B, 1, 1, 8
    ===
    A -> B: uranium
    prvé riadky súboru obsahujú informácie o vrcholoch s menom a súradnicami v 3D priestore v tvare (meno, x, y, z). Po oddeľovacej sekvencii === nasleduje zoznam orientovaných hrán s údajom o komodite. Formát si samozrejme môžete upraviť, ide len o to, aby spĺňal túto funkcionalitu. Pripravte si aspoň 3 vstupné súbory aj s väčším grafom.
  • [3 body]: vykreslite vrcholy v 3D priestore ako kocky, pričom ich rozlíšte napríklad relevantnými textúrami. Medzi vrcholmi spojenými hranou vykreslite čiaru (https://netzwerg.ch/blog/2015/03/22/javafx-3d-line/). Celú sústavu dajte do Group a umožnite jej otáčanie a zoomovanie, podobne ako je to v ukážke Enhancements.java z prednášky.
  • [4 body]: po hranách sa bude presúvať tovar. Môžete to vizualizovať sférami, ktoré sa budú animáciou pomaly posúvať po hrane. Každý tovar bude mať vlastnú farbu.
  • [4 body]: pridajte UI panel, v ktorom budú dve textové okná na zadanie názvov vrcholov a tlačidlo "nájdi cestu". To na grafe spustí nejaký algoritmus (BFS) na nájdenie najkratšej cesty medzi zadanými vrcholmi a vyobrazí ju zafarbením hrán. Môžete pritom uvažovať, že všetky hrany majú rovnakú hodnotu, nehľadiac na tovar a vzdialenosť v priestore (neohodnotený orientovaný graf). V UI paneli sa vypíše dĺžka nájdenej cesty (počet prejdených vrcholov), respektíve hláška, že v grafe neexistuje cesta medzi zadanými vrcholmi.
  • [2 body]: bonus za celkový dojem a vlastné prídavky. Môžete napríklad do UI panelu dorobiť legendu farieb tovarov. Alebo pridajte ďalšie zaujímavé grafové algoritmy, napríklad zisťovanie, či je graf súvislý, alebo sa skláda z X komponentov. Machri môžu skúsiť hľadanie kostry, len tam treba premyslieť presmerovanie tovarov cez iné hrany (pre jednoduchosť to môžete odignorovať). Všetky takéto bonusové funkcie by mali byť spustiteľné tlačidlom na paneli alebo stlačením klávesy.

Pre uznanie ako RP je potrebné splniť všetky podúlohy aj s bonusom (teda získať 15 bodov)!

Poznámka: asi vám dobre poslúži zoznam videí JavaFX3D - YouTube.

Autor Lukáš Gajdošech
Študenti pracujúci na zadaní Veronika Bojda Jakub Šmihuľa Ivana Bekešová
Proj24-L4 Pacman 3D

V tomto projekte sa presvedčíme o tom, že v podstate ľubovoľná 2D hra môže byť prerobená do 3D. Výsledok je pritom omnoho zaujímavejší! Legendárny Pacman získava tretí rozmer.

Bodovanie:

  • [1 bod]: Vykreslenie mapy zo vstupného súboru (nájdete v Labyrinth.java z prednášky).
  • [3 body]: Do hry pridajte Pacmana, pričom kamera sa na neho bude pozerať zvrchu pod miernym uhlom. Pacman vždy beží až dokým nenarazí na stenu alebo hráč nezmení smer, poznáte to... Môže začať na náhodnom mieste, alebo jeho štartovaciu pozíciu zapíšte do vstupnej mapy.
  • [2 body]: Po ceste Pacman zbiera bodíky, ich počet sa zobrazuje na UI paneli.
  • [4 body]: Pridajte do hry tretí rozmer. Niektoré časti mapy môžu byť vyvýšené, pričom Pacman na ne dokáže vyskočiť. Vyvýšená cesta sa môže krížiť s normálnou a medzeru môže Pacman preskočiť, alebo ostane stáť na jej okraji. V mape reprezentujte vyvýšené časti iným znakom, napríklad:
    ########
    ###....#
    #''.'#.#
    #......#
    ########
    znak ' označuje vyvýšenú cestu.
  • [3 body]: Pridajte duchov, ktorí sa budú autonómne pohybovať po mape. Pri zrážke s hráčom sa resetuje jeho skóre a objaví sa znova na začiatku.
  • [2 body]: Celkový dojem a vlastné prídavky. Môžete napríklad doplniť generovanie bonusového ovocia na náhodných pozíciách. Pekná by bola aj nejaká hláška pri smrti Pacmana.

Pre uznanie ako RP je potrebné splniť všetky podúlohy aj s bonusom (teda získať 15 bodov)!

Poznámka: asi vám dobre poslúži zoznam videí JavaFX3D - YouTube.

Autor Lukáš Gajdošech
Študenti pracujúci na zadaní Lenka Záhradníková Richard Macko Peter Vavra
Osadníci z katanu

Stolná hra, ktorá sa postupne presunul aj do online priestoru. Hru si môžete pozrieť/zahrať aj tu: https://catanuniverse.com/en/game/
Vašou úlohou bude vytvoriť podobnú hru ako je táto na internete. Hra bude určená pre 3 hráčov.
Na začiatku je treba vykresliť plochu s 19 6-uholníkmi: 18x symbolizuje 6-uholník jednu surovinu - drevo, tehly, ovce, obilie a kameň, 1x 6-uholník v strede je špeciálny – púsť. Každému políčku je priradené jedno číslo od 2 po 12 vrátane (okrem 7), kde na hracej ploche sú vždy dve políčka s 3, dve políčka s 4 ..., ale len jedno políčko s 2 a 12. Suroviny aj čísla sú v rámci mapy rozmiestnené rôzne. Po krajoch sú rozmiestnené prístavy. (viď obrázok)

Pred začiatkom hry sa hádže kockou. V poradí v akom hodili číslo si hráči stavajú dediny. Každý má možnosť postaviť dve dediny a dve cesty, ktoré s dedinami susedia. Dediny sa stavajú vo vrcholoch 6-uhoľníkov a cesty na stranách.
Na začiatku hry dostane hráč karty podľa území s ktorými susedia jeho mestá. Karty jednotlivých hráčov sa ukážu len keď sú na rade.
Priebeh hry: Hráč na začiatku ťahu hodí dvomi kockami. Podľa súčtu hodených čísel sa priradia suroviny, t.j. ak padne 2 a 3, tak súčet je 5 a teda suroviny dostanú tí hráči, ktorí susedia so 6-uhoľníkmi s číslom 5 a dostanú surovinu, ktorá sa nachádza na tomto 6-uhoľníku. Následne môžu stavať mestá/kupovať špeciálne karty alebo skončiť ťah.
Vyhráva hráč, ktorý najskôr dosiahne 10 bodov. Body sa dajú získať za stavanie dedín/miest a pomocou špeciálnych kariet. Podrobnejší opis pravidiel je: https://www.zbozi.cz/vyrobek/albi-osadnici-z-katanu/manual-navod/pravidla-hry/

Bodovanie:
[1 bod] Hlavné menu s možnosťou spustiť/ukončiť hru
[5 bodov] Vytvorenie a vykreslenie hracej plochy (hracia plocha nie je statická, ale pri každej hre je rozmiestnenie surovín a čísel generované nanovo) + vykresľovanie dedín, miest, ciest, kariet...
[2 body] Úvodné hádzanie kockou a uloženie prvých dedín
[1 bod] Ukazovateľ skóre pre každého hráča
[1 bod] Časové obmedzenie dĺžky ťahu a ukazovateľ zostávajúceho času
[5 bodov] Hra proti počítaču (netriviálna AI)

Autor Dominika Závacká
Študenti pracujúci na zadaní Adam Forgáč Nikolas Gubančok Vladimír Jančár
Človeče, nehnevaj sa!

Vašou úlohou bude implementovať klasickú stolnú hru Človeče, nehnevaj sa! pre 4 hráčov. Pre zjednotenie uvádzam pravidlá:
Každý hráč má 4 figúrky rovnakej farby. Pre začiatkom hry sú všetky figúrky umiestnené v štartovnom domčeku podľa svojej farby.
Cieľom hry je dostať všetky svoje figúrky zo štartovného domčeka do cieľového domčeka tým, že figúrky prejdú po všetkých hracích políčkach na hracom pláne. Každá farba má na hracom pláne znázornené štartovacie políčko. Figúrka sa posúva podľa čísla hodeného kockou.
Vyhadzovanie figúrok - Ak sa figúrka dostane na políčko, na ktorom už stojí súperova figúrka, vyhadzuje ju z hry do štartovného domčeka. Hráč nemôže vyhodiť samého seba!
Aby sa dostala figúrka zo štartovného domčeka na štartovné políčko, musí hráč hodiť šestku. Ak v hracom poli nemá žiadnu svoju figúrku, môže hádzať maximálne trikrát. Ak sa nepodarí hráčovi hodiť šestku, na rade je súper.
Ak počas hry hodí hráč šestku, hádže ešte raz. Následne sa môže hráč rozhodnúť, či uvedie do hry ďalšiu figúrku zo štartovného domčeka (a potom posunie ľubovoľnú figúrku o počet bodov z druhého hodu) alebo posunie figúrkami na hracej ploche. Hráč sa môže rozhodnúť, ktorý "hod" uplatní na ktorú figúrku. 
Hru vyhráva hráč, ktorý ako prvý obehne hraciu plochu so všetkými svojimi figúrkami a dostane ich do cieľového domčeka, čím hra končí.

Bodovanie:

[2 body] Hlavné menu s možnosťou spustiť/ukončiť hru

[2 bod] Vytvorenie a vykreslenie hracej plochy

[2 bod] Vykresľovanie jednotlivých postavičiek

[2 bod] Vyhodenie postavičky

[2 bod] Prepínanie medzi postavičkami (pre uplatnenie ťahu pri hode 6)

[1 body] Hádzanie kockou (grafické znázornenie kocky)

[4 body] Hra proti počítaču (netriviálna AI)

Keďže je hra jednoduchá, bude sa dbať aj na grafickú stránku výsledného projektu.

Autor Dominika Závacká
Študenti pracujúci na zadaní Liliana Hodoňová Zuzana Neupauerová Ivana Zeleňáková
Had

Hru Had pozná asi každý, kto nie, môže si zahrať tu: https://www.google.com/fbx?fbx=snake_arcade
Naša výsledná hra bude trošku zložitejšia. Had bude mať na začiatku 3 životy, z ktorých sa mu bude odrátavať, keď nabúra do steny/samého seba.
Počas hry bude mať za úlohu zbierať dobré objekty, za ktoré získava body (rôzne objekty s rôznym počtom bodov).
Na hracej ploche sa však budú vyskytovať aj časovo obmedzené zlé objekty, ktoré mu body odrátajú (objekty sa zobrazia len na určitý čas a budú odrátavať rôzny počet bodov podľa objektu).
Taktiež má možnosť zbierať rôzne časovo obmedzené bonusy (možnosť prechádzať cez steny, neviditeľnosť t.j. prechádzanie cez seba, skrátenie, predĺženie, zrýchlenie, spomalenie...)

Bodovanie:
[3 body] Hlavné menu s možnosťou spustiť/ukončiť hru, zobraziť rebríček, vypísať nápovedu (ukážka bonusov s popisom a dobrých/zlých objektov s počtom bodov, ktoré prirátajú/odrátajú)
[2 body] Zápis, ukladanie a vypisovanie rebríčku (meno + skóre)
[1 bod] Hracia plocha
[1 bod] Ukazovateľ skóre
[1 bod] Ukazovateľ počtu životov
[2 body] Vykresľovanie hada, kontrola kolízií
[5 bodov] Vykresľovanie bonusov, dobrých a zlých objektov. Body záležia od zložitosti a počtu vykresľovaných objektov.
Keďže je hra jednoduchá, bude sa dbať aj na grafickú stránku výsledného projektu.

Autor Dominika Závacká
Študenti pracujúci na zadaní Zuzana Matúšková Mikuláš Zelenák Miriam Grznárová
Dots and boxes

Na začiatku hry máte plochu na ktorej je NxN bodiek. Počas hry sa hráči postupne striedajú a vytvárajú čiary medzi bodkami. Hráčov ťah trvá dovtedy, pokiaľ nespraví čiaru, ktorá neuzavrie krabičku t.j. ak hráč uzavrie pri svojom ťahu krabičku, pokračuje ďalej, kým nenakreslí čiaru, ktorá žiadnu krabičku nevytvorí. Vyhráva hráč, ktorý uzavrie najviac krabičiek t.j. najčastejšie pridá štvrtú stenu k zvyšným trom. Ukážka je na obrázku a hru si môžete skúsiť zahrať aj tu: http://dotsandboxes.org/

Bodovanie:
[2 body] Hlavné menu s možnosťou spustiť/ukončiť hru
[1 bod] Vytvorenie a vykreslenie hracej plochy
[1 bod] Možnosť nastavenia ľubovoľnej veľkosti hracej plochy
[2 body] Možnosť nastavenia hry pre viacerých hráčov (bez AI na jednom počítači)
[2 body] Farebné rozdelenie čiar a získaných krabičiek
[1 bod] Ukazovateľ skóre pre hráčov
[1 bod] Ukazovateľ aktuálneho ťahu
[5 bodov] Hra proti počítaču (netriviálna AI)

Autor Dominika Závacká
Študenti pracujúci na zadaní Tomáš Knepp Filip Valíček Lea Michalíková
Zoopaloola

Možno si ešte niektorí z vás pamätajú, že dávno pred tým ako nastúpil messenger existoval program ICQ. Okrem základného chatu ponúkal prevratný nový spôsob zabíjania času a to hraním hier s ľuďmi v chate.  Jednou z týchto neuveriteľných hier je aj Zoopaloola a vy máte jedinečnú príležitosť si ju naprogramovať. Nebojte nemusíte vymýšľať nový protokol na komunikácie na webe ako ICQ ale budete programovať iba lokálny multiplayer.

Pravidlá hry sú jednoduché. Hru hrajú dvaja hráči, na začiatku majú rozostavané postavičky v nejakom vzore na “biliardovom stole“  to znamená že v rohoch a strede hrán sú diery z ktorých vedia postavičky vypadnúť. Hráč ktorý je na ťahu si kliknutím myši vyberie figúrku a následne ju potiahnutím myši natiahne ako autíčko na zotrvačník a rozbehne sa dopredu. Figúrky sa následne zrážajú a ich pohyb sa postupne spomaľuje trením. Cieľom hry je zhodiť všetky súperove figúrky z hracej plochy. Hru si môžete skúsiť zahrať tu: https://zoopaloola.eu/.

Bodovanie:

  • Po zapnutí hry si hráči budú môcť vybrať v menu typ hracej dosky(viď nižšie), následne si vyberú jeden zo vzorov pre rozostavenie figúrok. Potom sa už hra začne a hráči sa striedajú v klikaní. V prvom kroku si každý vyberie obrázok/piktogram postavičky za ktorú bude hrať , na výber má aspoň 3 rôzne. (2body)
  • Po vybratí postavičiek sa začne hra. Zobrazia sa rozložené figúrky a hráči sa striedajú v ťahoch až kým jeden nevyhrá. Funkčné pohyby figúrok a ich odrazy, striedanie ťahov a kontrola ukončenia hry. Po ukončení hry zobraziť víťaza a dať možnosť návrat do menu alebo ďalšia hra. (7bodov)
  • V našej verzii hry bude možné si vybrať z aspoň troch rôznych hracích dosiek s tým, že na každej je trochu iná fyzika. Napríklad sa môže pridať hra na lade, kde bude nižšie trenie a figúrky sa budú teda viac šmýkať alebo doska s gumenými hranami stola a teda odrazy od stien budú silnejšie. Môžete si ale vymyslieť aj niečo vlastné, musí to ale obsahovať zmenu fyziky pohybu figúrok a nie len napr. iné usporiadanie dier.(2body)
  • Rovnako sa bude dať vybrať si aspoň z troch rozložení figúrok. Prvé rozloženie je napr. ako hore na obrázku. Ďalšie môže byť napr. figúrky jedného hráča na ľavej polovici a figúrky druhého na pravej. Tu je to čisto na vašej fantázii. (2body)
  • Rozohranú hru bude možné uložiť do súboru a následne ju bude možné aj v hlavnom menu načítať a pokračovať v hraní. (2body)
Autor Filip Kerák
Študenti pracujúci na zadaní Alena Kuklicová Viliam Hrčka Adelina Ivantaeva
Slide a Lama

Je ďalšou zo série ICQ hier. Dokonca tak zaujímavá, že sa na matfyze už neraz programovala(viď. https://slide-a-lama.webnode.sk/). Vy budete ale programovať aj jej trochu upravenú verziu na štýl pokru. Pravidlá hry sú nasledovné je daná hracia plocha veľkosti 5x5, na začiatku je naplnená kameňmi. Hráči sa postupne striedajú v ťahoch. Hráč dostane náhodný kameň a musí ho vsunúť do hracej plochy. Kameň može vsunúť zo strán alebo z vrchu. Na kameňoch budú symboly ako na pokrových kartách cieľom je dostať v stĺpci alebo riadku nejakú kartovú kombináciu čím lepšia tým viac bodov za ňu hráč dostane. (Pozn. Na to aby sme mali napr. pár v riadku nemusia byť kamene priamo vedľa seba.). Hráči sa striedajú a majú na ťah 10 sekúnd, po uplynutí tohto intervalu sa kameň pustí a vloží tam kde ho hráč držal. Hra končí keď jeden z hráčov nahrá o X bodov viac. (X sa bude dať nastaviť pri zakladaní hry.) Hru si môžete zahrať tu: https://slidealama.eu/. Jej poker verziu pozrite tu: https://www.youtube.com/watch?v=jLMpBPfHNxE&ab_channel=DieDrivers.

 

Bodovanie:

  • Po zapnutí hry si budú hráči môcť vybrať buď načítať uloženú hru alebo začať novú hru. Po začatí novej hry si vyberú mód hry(bežný alebo poker), vyplnia svoje mená a zvolia si threshold X pre rozdiel bodov následne sa vygeneruje hracia plocha a začne hra.(2body)
  • V hre budú môcť vkladať kamene do poľa. Hra musí obsahovať postupnú animáciu vloženia a následného slidnutia kameňov s tým, že na druhej strane kameň prípadne vypadne.(To znamená, že sa nestane to aby po kliknutí iba blik a riadok vyzerá inak.) Správne vkladanie, posúvanie a vypadávanie kameňov.(4body)
  • Štandardný mód: V hre sa používajú kamene so symbolmi, cieľom je mať trojicu a viac symbolov pri sebe. Hráči sa v ťahoch striedajú a majú na ťah časovač(ten sa im zobrazuje), ak hráč nestihne spraviť ťah tak po jeho uplynutí sa kameň slidne tam kde ho hráč držal. Po slidnutí sa porozbíjajú kamene podľa pravidiel až pokým nie je na hracej ploche žiadna trojica. Hráčovi sa pripočítajú body a na ťah ide protihráč.(Bodové ohodnotenie je na vás.) Hra kontroluje či niekto nevyhral, ak áno môžu hrať ďalšie kolo alebo sa vrátiť do menu.(3body
  • Poker mód: V hre sa používajú kamene so symbolmi z kariet, cieľom je mať v riadku alebo stĺpci niektorú z bodovaných kartových kombinácií, nie nutne pri sebe. Hráči sa v ťahoch striedajú a majú na ťah časovač(ten sa im zobrazuje), ak hráč nestihne spraviť ťah tak po jeho uplynutí sa kameň slidne tam kde ho hráč držal. Po slidnutí sa porozbíjajú kamene podľa pravidiel až pokým nie je na hracej ploche žiadna kartová kombinácia. Hráčovi sa pripočítajú body a na ťah ide protihráč.(Bodové ohodnotenie kombinácií je na vás.) Hra kontroluje či niekto nevyhral, ak áno môžu hrať ďalšie kolo alebo sa vrátiť do menu.(4body
  • Rozohranú hru bude možné uložiť, načítať a pokračovať v jej hraní.(2body)
Autor Filip Kerák
Študenti pracujúci na zadaní Alex Juráška Tomáš Magula Lukáš Hajdúch
RPS

Táto strategická hra mala potenciál presvedčiť aj šachových veľmajstrov aby zmenili svoju profesiu a začali ju hrať. Jednak pre jej neuveriteľne komplikovaný strom možností ale hlavne, preto že má navyše jednu dôležitú vlastnosť, je zábavné ju hrať. Takáto migrácia hráčov by však viedla k miliardovým stratám u výrobcov magnetov pre šachové figúrky. Preto bola táto hra stiahnutá z ICQ a svetová šachová scéna bola zachránená. Vašou úlohou je priviesť túto hru späť k životu. Ako vyzerá kolo si môžete pozrieť tu: https://www.youtube.com/watch?v=Q2sDtTbzHiI&ab_channel=shachar700 .

Bodovanie:

  • Po zapnutí hry si bude hráč môcť vybrať „začať novú hru“ alebo „načítať uloženú hru“ zo súboru. Následne sa vykreslí hracia plocha s figúrkami. Pričom ak hráč začne novú hru tak si vyberie kam sa nastaví pasca a kam sa nastaví vlajka. (2body)
  • Hráč si vždy zvolí figúrku a hra mu ukáže možnosti kam môže ísť. Hra kontroluje ťahy hráča a vyhodnocuje ich. Figúrky sa musia slidovať(animácia posunu) nie sa len prebliknúť na nové miesto. V prípade útoku, kde dôjde k remíze umožní hráčovi vybrať nový nastroj. Treba správne zobrazovať aj figúrky, ktoré už odhalili čo majú na ruke. (5bodov)
  • Hra kontroluje či niekto nevyhral. Po skončení hry sa môže vrátiť do hlavného menu alebo začať novú hru. Hru je možné v ľubovoľnom momente uložiť do súboru a potom ju následne načítať a pokračovať v hraní.(2body)
  • Keďže hra sa nehrá proti hráčovi ale proti počítaču musíte implementovať aj AI. Aspoň triviálne riešenie je nutnou podmienkou na udelenie bodov, pretože inak nemáte ako odprezentovať riešenie. Netriviálne AI(6bodov).  AI by nemalo podvádzať a byť dobré len preto, že nahliadne na neodkryté figúrky. Hint - Pre AI skúste pogoogliť: min-max, monte-carlo, rule based system...
Autor Filip Kerák
Študenti pracujúci na zadaní Nikto nepracuje na tomto zadaní.
3D grafika vo Flatlandii

Videli ste základ ako sa dá robiť s 3D objektami v javaFx, v tejto úlohe to ale potrebovať nebudete, priam je to zakázané. Na riešenie celej úlohy je treba použiť iba 2D prvky z canvasu.  Cieľom úlohy bude vykresliť zopár jednoduchých 3D objektov, ktoré sa budú dať jednoducho posúvať a rotovať.  Inšpirovať sa môžete napr. tu https://tobiasmarciszko.github.io/rotating-js-cube/ alebo https://www.mamboleoo.be/articles/how-to-render-3d-in-2d-canvas

Bodovanie:

  • Po zapnutí aplikácie je možné si vybrať tvary ktoré chceme zobraziť z: kocky, ihlanu a jedného vami zvoleného objektu – čokoľvek okrem kvádra. (Môže to byť napr. zrezaný ihlan alebo guľa. Pozn. ak si zvolíte guľu tak na jej plášť treba umiestniť napr. bodky, aby bolo vidno že rotuje.)  Môžeme si vybrať napr. aj 2 krát zobraziť kocku. Následne sa zobrazí okno v ktorom sa vedľa seba zobrazia zvolené objekty.(2body)
  • Po zobrazení každý objekt pomaly rotuje okolo svojej stredovej osi napr. v smere hodinových ručičiek. (5bodov)
  • Aplikácia bude mať 2 módy, ktoré sa budú dať prehodiť stlačením klávesy napr. „M“. V prvom móde sa po kliknutí a potiahnutí objektu dole/hore objekt zväčší/zmenší a pokračuje v rotovaní ako predtým. Zväčší sa iba objekt na ktorý sme klikli ostatné zostanú rovnaké.(4body) (Na získanie 3bodov stačí, ak bude táto funkcionalita fungovať iba pre kocku, 4body získate ak bude fungovať aspoň pre 2 z 3objektov.)
  • V druhom móde sa po kliknutí na objekt a jeho potiahnutí zmení smer rotácie a objekt bude rotovať v tomto novom smere(Môže byť ľubovoľný, nie len vľavo/vpravo alebo hore/dole). Objekt vždy rotuje okolo svojho stredu. Opäť sa zmení smer iba pri vybranom objekte, zvyšné sa nemenia.(4body) (Na získanie 3bodov stačí, ak bude táto funkcionalita fungovať pre 2 z 3objektov.)
Autor Filip Kerák
Študenti pracujúci na zadaní Paulína Jančárová Juraj Petráš Jahonoro Tojieva
Age of War

Ďalšou hrou v poradí je obľúbená hra Age of War. Cieľom projektu bude naprogramovať jej kópiu s minimálnymi úpravami. Pravidlá hry: proti sebe stoja dvaja hráči, jeden z nich je počítač pričom cieľom hry je zničiť protivníkovu základňu. Hráči proti sebe posielajú jednotky, ktoré pochodujú jednotlivo za sebou v rade pričom pri kontakte proti sebe bojujú. Za zneškodnenie nepriateľských jednotiek hráč získava peniaze (a XP), za ktoré si vie kupovať jednotky či turrety. V hre máme dva druhy jednotiek: melee a ranged (t.j. na boj zblízka a boj z diaľky). Melee jednotky bojujú spolu len pri kontakte pričom ranged jednotky vedia strieľať na oponenta cez jedného svojho spolubojovníka. Na základňu je možné umiestniť si turret. Hráč môže využiť aj špeciálne útoky (padajúce meteority, salvu šípov, bombardovanie, …). Po dosiahnutí stanoveného počtu XP sa hráč vylepší na nasledujúcu dobu - čo znamená, že má možnosť vyrábať silnejších vojakov, lepšie turrety a má k dispozícii silnejší špeciálny útok. Pre jednoduché pochopenie odporúčam zahrať si hru: https://ageofwargame.io/.

 

Bodovanie:

  • Po zapnutí si hráč môže zvoliť novú hru, alebo nahrať uloženú hru. Počas hry má možnosť hráč si hru pauznúť a uložiť ju. Ukladanie obsahuje polohu jednotiek, ich health, health základne, počet peňazí a cooldown špeciálnej schopnosti. Pokiaľ hráč vyrába nejakú jednotku, musí sa uložiť aj tento progres. (3 body)
  • Základný herný režim: hráč ma umožnené vytvárať jednotky (min. 3 druhy, z toho min. jedna ranged), ktoré pochodujú a bojujú proti sebe. Za zneškodnenie hráč dostáva peniaze. Proti hráčovi hrá jednoduchý oponent. Počas hry sa kontroluje, či niektorý z hráčov nevyhral. (4 body)
  • Rozšírený režim: Hráč navyše za zneškodnenie dostáva XP. Po dosiahnutí určitého počtu XP sa môže hráč posunúť do nového veku (napr. od praveku do stredoveku). Minimálny počet dôb sú 4. Hráč má taktiež k dispozícii špeciálnu schopnosť, ktorá sa mení každým vekom a taktiež má možnosť používať turrety. Jednotky a turrety zo staršieho veku sú samozrejme slabšie ako tie z novšieho (swordsman je silnejší ako clubman …). Hra obsahuje jednoduché menu (2 body)
  •  Vylepšený protivník: hráč si pri novej hre môže zvoliť obtiažnosť hry. Hrá má tri módy, easy, medium, hard. V móde easy je proti hráčovi jednoduchý oponent - náhodné vytváranie jednotiek, dummy stratégia. V medium móde počítač používa jednoduchú stratégiu a vie používať špeciálnu schopnosť. V hard móde počítač využíva stratégiu, reaguje na hráčom vytvorené jednotky, stavia si turrety a strategicky používa špeciálnu schopnosť. (4 body)
  • Pokročilé menu: Hra obsahuje menu tak, ako je v hre (menu s jednotkami, turetmi). (2 body)
Autor Filip Kerák
Študenti pracujúci na zadaní Lukáš Mihál Norbert Krivý Lukáš Košina