Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek Bludiště dokumentace ročníkového projektu Nicole Kambová, 1. E 04. 05. 2014 1.1 Anotace Cílem projektu bylo bludiště, kde se bude procházet různými zákoutími labyrintu. Při příchodu do bludiště se dá jít různými směry. Hra se ovládá šipkami a klávesou „h“, jako help (česky pomoc). Hra má celkem jedenáct stránek. Dvě jsou informativní a zbytek stránek jsou dějové. Ze stránek se přechází na jiné, předem určené stránky. Cílem hry je dojít na konec labyrintu a pokud možno najít poklad. 1.2 Abstract Purpose of the Project was a labyrinth, where you can go through different recesses of the labyrinth. You can take different ways after came into the labyrinth. The game is controlled by arrows and the key „h“ for help. The game has in total eleven pages. Two are informativ and the rest of them are about the story. From one page you pass to the next predetermined page. The purpose of the game is to go to the end of the labyrinth and, if possible, to find a treasure.
Dokumentace ročníkového projektu - Bludiště 1.3 Prohlášení Prohlašuji, že jsem jedinou autorkou tohoto projektu, všechny citace jsou řádně označené a všechna použitá literatura a další zdroje jsou v práci uvedené. Tímto dle zákona 121/2000 Sb. (tzv. Autorský zákon) ve znění pozdějších předpisů uděluji bezúplatně škole Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmnožování díla (§ 13) a práva na sdělování díla veřejnosti (§ 18) na dobu časově neomezenou a bez omezení územního rozsahu. Praha, 04. 05. 2014
2
Dokumentace ročníkového projektu - Bludiště 1.4 Zadání projektu Tahová hra s grafickou úpravou Program na obrazovku vypíše zadání a pozadí Z nabídky se jde na jednu z dalších stránek v pořadí Součástí je funkční bludiště o minimálně šesti stránkách Vedle pohybu budou možné i jiné akce Přechod na jinou obrazovku Sebrat předmět Přechod může být závislý na vlastnictví předmětu Java, Inkscape 1.5 Návod
Obrázek 1. - rozcestí
Po spuštění aplikace přes vývojové prostředí Java je hra více než jednoduchá. Šipkami u klávesnice je možné se pohybovat po prostředí, které se skládá z jednotlivých obrázků. Hra nemá dlouhé trvání, je možno ji vyhrát dokonce za pár sekund, když si uživatel – hráč – nevšímá obrázků ani nápisů a ví, co má dělat a kam jít. Z prvního – úvodního – obrázku se může jít buďto na nápovědu neboli pomoc, klávesa „h“, nebo pokud už víte, jak se hra ovládá, se můžete pustit na cestu šipkou vpravo. Druhý obrázek představuje rozcestí, kudy se hráč může dát. Má na výběr tři možnosti. První, šipkou vlevo, se dá dojít ke zdánlivě slepé uličce, která je zakončena vysokou zdí. Vyberete-li si možnost jít vlevo, vyjdete z labyrintu. Vyberete si možnost jít rovně na zeď a tu přelézt, spadnete a zemřete. Třetí možnost máte jít zpět, cesta však nevede zpátky na rozcestí, jak by hráč čekal, ale je napadnut drakem, před kterým se může buď obrátit na útěk, nebo s ním bojovat. Vyberete-li si však možnost jít z úvodního rozcestí rovně, naleznete klíč k pokladu. Rovněž, jako u slepé uličky máte možnost ze tří nabídek. Můžete klíč sebrat, nechat ho být, nebo odejít zpátky stejnou cestou. Když se rozhodnete klíč sebrat, můžete najít poklad a cestu ven z labyrintu. Rozhodnete-li se však jít dál a klíče si nevšímat, narazíte na neviditelnou stěnu, přes kterou nemůžete přejít, jestliže nemáte ve vlastnictví klíč. Třetí možnost, jít zpět, vede ke drakovi stejně jako poslední možnost ve slepé uličce. Půjdete-li z úvodního rozcestí cestou doprava, naleznete rovněž draka. Tady máte pouze dvě možnosti. Buďto utéct, nebo jít bojovat. Utečete-li, najdete cestu ven. Avšak jestli
3
Dokumentace ročníkového projektu - Bludiště zůstanete a budete bojovat, zemřete a jediná cesta, co můžete udělat – kromě vypnutí programu – je hrát znova. 2.0 O projektu všeobecně
Obrázek 2 - poklad
2.1 Cíl projektu Cílem projektu bylo vytvořit počítačovou hru, ve které by se přecházelo ze stránky na stránku. Hra má jednoduchý příběh a to hrdiny, který se dostal do labyrintu a hledá jak cestu ven, tak poklad, který je ve hře ukrytý. 2.2 O historii projektu Každý má rád příběhy. Už od pradávna se vypráví mezi lidmi. Dříve se většinou sešla celá vesnice, aby si je poslechla. Jenže, jak už se to stává, ne vždy se příběhy sešly s takovým ohlasem, jaký si vypravěč přál. Z toho důvodu je formuloval tak, aby byly lidem bližší a tudíž se originály začaly pomalu vytrácet. Proto se vymyslily příběhy, ke kterým je zapotřebí více lidí. Ti si vymyslí předlohu, podle které pak vypravěč pracuje. Avšak je to stále on, kdo navrhuje, co se hlavní postavě stane, koho pozná, co jej potká. Posluchači dá pouze nabídku, co se může stát, a on si vybere. Tato forma příběhu je velmi oblíbená a v dnešní době známá pod pojmem dračí příběh, neboli také dračák. Tyto dračí příběhy se vypráví především mezi mladšími dětmi, aby zahnaly nudu. A tak mě napadl můj ročníkový projekt; Labyrint. Je podaný formou dračího příběhu, kde má hrdina omezený počet možností, co udělat. Jeho šance jsou ještě sníženy tím, že mám pouze devět stránek příběhu, ve kterém se může pohybovat, bojovat s drakem nebo také nalézt klíč k ukrytému pokladu.
4
Dokumentace ročníkového projektu - Bludiště 2.3 Vývoj hry
Obrázek 3 - podmínky pro aktuální kartu
Obrázek 4 - podmínky zobrazení obrázku
Už, jakmile jsme dostali zadání ročníkové práce, se mi v hlavě začal rodit nápad. Vzpomněla jsem si na jednu knihu, kterou mi kdysi na táboře půjčila kamarádka. Byla to příběhová kniha, první, co jsem viděla. A od té chvíle jsem si usmyslila, že bych také mohla něco na ten způsob vytvořit. Od té chvíle ale uplynulo mnoho let a já zjistila, že vše není na první pohled tak jednoduché, jak se zdá. Vytvořit příběh, který by na sebe alespoň trochu navazoval, a který by mohli hrát jak dívky, tak chlapci, bylo těžké. V hlavě jsem měla malinko představu, ale přenést to na papír, nebo dokonce do počítače, bylo nad mé síly. Proto jsem docela dlouho nevěděla, jak začít. A tak jsem začala od toho, alespoň pro mě, jednoduššího. Navrhla jsem obrysy nejprve osmi stránek, ze kterých by se dalo přecházet z jedné na druhou. Poté jsem jim postupně dávala obraz, až do finální podoby. Poté zbývalo pouze hru naprogramovat. Zeptala jsem se několika lidí, včetně pana profesora a žáka programování z vyššího ročníku, jak by to udělali. Každý mi dal popis něčeho, čemu jsem tak přesně nerozuměla a když jsem si to všechno dala dohromady, zjistila jsem, že jsem se v tom úplně ztratila. Musela jsem tedy začít od začátku. Vše jsem programovala ve vývojovém prostředí Java. Vytvořila jsem třídu, ve které jsem si zavolala postupně všechny obrázky. Poté jsem si dala podmínky, podle kterých se první, úvodní stránka změní na další, podle toho, kterou klávesu uživatel stiskne. Celá hra je tvořena takovýmito podmínkami, které se obměňují podle fáze, ve které se právě nachází.
5
Dokumentace ročníkového projektu - Bludiště 2.4 Grafické zpracování projektu
Obrázek 5 - zeď v labyrintu
Na obrázky, ze kterých je hra sestavená, jsem používala převážně svou vlastní tvorbu. Všechny jsem vypracovala v programu Inkscape, který je mi už velmi dobře znám, tudíž jsem v tomto ohledu neměla žádné problémy. Sestavení obrázků mi trvalo přibližně hodinku a půl dohromady, tedy deset minut jeden, ale vždy jsem si udělala jen hrubé náčrtky. Později jsem je upravila a k některým jsem připsala děj, nabídku, co může hráč udělat a jaké k tomu má použít prostředky. Zádrhel se objevil, když jsem zjistila, že vytvořit draka – aby také jako drak i přibližně vypadal – by mi zabralo velmi mnoho času, tudíž jsem se poohlédla po jiném řešení. To se vzápětí naskytlo v podobě CC, neboli Creative Commons, kde se dají stahovat obrázky bez jakékoliv licence. Po chvíli hledání jsem nalezla ten, který můžete vidět na monitoru při hraní hry, když jste napadeni drakem. Nejvíce potíží mi přinesl obrázek, zvaný Zeď, který můžete vidět, když přejdete z hlavní uličky doleva. Nechtěla jsem, aby zeď, která je na obrázku dominantní, vypadala jednolitě. Takže jsem se pustila do, přibližně hodinového, předělávání, kde jsem zdi vytvořila něco, co by se vzdáleně mohlo podobat cihlám. Každou jsem tvořila zvlášť a dala jsem jim různé odstíny, aby byly různě veliké a já se tak zbavila jednolitosti. Konečné zpracování obrázků se jen velmi málo podobá těm úvodním. Dokonce jich bylo původně o něco méně, nějaké obrázky jsem vytvořila až tehdy, kdy byla hra naprogramovaná. 2.5 Problémové části Nejvíce problémů mi nadělala stavba kostry programu a dějová linie. Přestože tam téměř žádná dějová linie není, bylo zapotřebí vymyslit obecné otázky, které se budou hráči zobrazovat a sladit je k obrázkům. Dlouho jsem si lámala hlavu s nějakým složitým textem, který bych mohla do hry dosadit, když v tom jsem si vzpomněla, že na dějové lince vůbec nezáleží. Sladila jsem děj tedy pouze okrajově, ale doopravdy to není nějaký hloubkový děj, dokonce bych si dovolila tvrdit, že tam téměř žádný děj není. Jak už jsem napsala v kapitole „2.3 Vývoj hry“, zeptala jsem se několika osob ohledně programování, které mi poté různě odpověděly. Dlouho jsem si skládala jen různé příkazy dohromady a čekala, co mi program vytvoří. Samozřejmě, že nevytvořil absolutně nic, pouze mi vracel chyby ve zkratkách, kterým jsem ani nerozuměla.
6
Dokumentace ročníkového projektu - Bludiště Vlastně jsem téměř celý projekt vytvořila až v úterý, 13. 05. 2014, o volné hodině před jazykem. Poté jsem se do třídy vrátila a strávila tak dalších pár hodin ve společnosti několika dalších spolužáků. Každý jsme si navzájem koukali přes rameno a spolu s utahováním si z druhých jsme občas i někomu něco poradili – v mém případě spíše radili oni mně. Dlouho jsem nemohla najít chybu, proč se mi nezobrazují obrázky, ale pouze prázdné okno. Naštěstí jsem poté zjistila, že mi chybí kus kódu ve vykreslení, který stačil pouze doplnit, a vše by mělo být v pořádku. Jenže, jak už se to v programování stává, vymaže-li se jedna chyba, naskytne se vzápětí další, pravděpodobně, aby programování nebylo tak nudné a programátoři si užili trochu srandy zíráním na obrazovku, hledajíc chybu, která tam před chvílí jistojistě nebyla. Některým se na obrazovce objevovali černí pasažéři – čtverečky na místech, kde je nikdo nechtěl – a mně se pro jistotu vypisovala pouze úvodní stránka hry. Tentokráte jsem koukala do obrazovky, ale ani po deseti minutách jsem nemohla najít chybu. Vše bylo tak, jak to být mělo. A přeci jsem ji tam měla. U konstrukce switch, která zajišťuje všechny možnosti, jak přejít na další stránku (a hlavně zajišťuje výběr, na kterou stránku se přejde), jsem příkaz zakončovala slovem break; které ukončí příkaz a měl by přejít na další. Jenže mě nejen, že přecházel na další stránku, ale rovnou projel všechny stránky, které tam měly být zobrazeny, a skončil znova na úvodním obrázku, který se mi ukázal. Musela jsem tedy poupravit kód a přepsat break; na return; přičemž jsem ještě připsala překreslení obrázku ke každé z podmínek. Další z mých chyb byly naštěstí pouze gramatické a estetické. Například jsem napsala do jedné ze stránek šipka rovně namísto šipka nahoru. Nebo jsem dávala text obrázků různě od sebe, přestože by tam měly být stejné, nebo alespoň podobné, mezery. Všechny takovéto chyby jsem se pokusila zachytit a pokud možno opravit. 3.0 Poděkování Chtěla bych tímto poděkovat všem, co mi pomáhali s otázkami ať už ohledně programování, či estetické stránky projektu. Zaprvé bych chtěla poděkovat panu profesorovi Obdržálkovi, za neztracení nervů s jeho studentkou, které byl vždy ochoten pomoci a poradit. Zadruhé mé poděkování patří mé nejlepší kamarádce Tereze Slavíkové, která mi pomohla už jenom tím, že nade mnou nezanevřela a schvalovala mi obrázky do hry. Zatřetí mému nejmenovanému konzultantovi z vyššího ročníku gymnázia, který mi poradil ohledně formy programu, a i když jsem z toho moc nepochytila, věnoval mi pár hodin svého drahocenného času. Nakonec bych chtěla poděkovat především svým přátelům, kteří mě morálně podporovali po celý čas dělání mé ročníkové práce a spolužákům, kteří mi koukali přes rameno a popoháněli mě. 3.1 Zdroj obrázku draka http://openclipart.org/detail/177391/dragon-by-denschub-177391 3.2 Závěr Jsem si jistá, že jsem neudělala jednu z nejlepších ročníkových prací tohoto ročníku, ale i přesto jsem na sebe hrdá. Jelikož jsem teprve nedávno (v září), začala programovat v jazyce Java, nevěděla jsem, jestli budu vůbec schopná vytvořit projekt, který by alespoň z poloviny fungoval tak, jak by měl. I přes to se mi povedlo vytvořit hru, která je nejen funkční, ale z mého pohledu nemá zas tak špatnou grafiku. Netvrdím, že jsem vytvořila hru, kterou by si hned každý zahrál, ale jsem ráda i za to málo, co jsem vytvořila. Jsem si vědoma toho, že hra není dokonalá, že nemá mnoho obrázků a často nejsou ani moc povedené. Ale je to moje hra a to je pro mě důležité. Na co mít úžasnou hru, když nebude vaše? Já jsem si vytvořila hru, nad kterou jsem usilovně pracovala a ať už dostanu jakoukoli známku, můj postoj k tomu to nijak nezmění.
7
Dokumentace ročníkového projektu - Bludiště Obsah 1.1 Anotace ........................................................................................................................ 1 1.2 Abstract ........................................................................................................................ 1 1.3 Prohlášení .................................................................................................................... 2 1.4 Zadání projektu ............................................................................................................ 3 1.5 Návod .......................................................................................................................... 3 2.0 O projektu všeobecně .................................................................................................. 4 2.1 Cíl projektu .................................................................................................................. 4 2.2 O historii projektu........................................................................................................ 4 2.3 Vývoj hry ..................................................................................................................... 5 2.4 Grafické zpracování projektu ...................................................................................... 6 2.5 Problémové části ......................................................................................................... 6 3.0 Poděkování .................................................................................................................. 7 3.1 Zdroj obrázku draka..................................................................................................... 7 3.2 Závěr ............................................................................................................................ 7 Obsah ................................................................................................................................. 8
8