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
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:
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:
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.
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.
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.
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.
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:
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.
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,
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í:
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.
[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
Ú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ť.
[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
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!
[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)
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á:
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ť.
[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ť
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!)
[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)
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).
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.
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)
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
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.
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 .
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.
Poznámka: asi vám dobre poslúži zoznam videí JavaFX3D - YouTube. Inšpirovat sa viete napr. gameplayom hry End Space.
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.
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:
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.
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ľ.
Ľ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ú.
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.
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)
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čí.
[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.
Hru Had pozná asi každý, kto nie, môže si zahrať tu: https://www.google.com/fbx?fbx=snake_arcadeNaš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.
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)
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/.
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.
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 .
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
Ď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/.