Gymnázium Arabská Hra Pexeso
ročníkový projekt předmět programování vyučující Tomáš Obdržálek autor Ondřej Novák školní rok 2013/2014
Anotace Mým projektem byla známá karetní hra pexeso, ovšem s menší obměnou. Na kartách nejsou čísla, ale slova. Hra spočívá v tom, že dva hráči se střídají v otáčení karet. Když kartu otočí, uvidí jedno slovo. Hráči otáčí vždy dvě karty za sebou. Snaží se otočit karty tak, aby byly na kartách slova k sobě patřící. Když se jim to povede, dvojice je odejmuta z herního plánu, hráč, kterému se to povedlo, získává bod a hraje znovu.
Anotation My project was well known game pexeso but with little change. There aren ´t pictures on the cards but words. In the game two players are turning cards. If they turn the card they see one word. Players always turning two cards in a row. They are trying to find two words to pair. If they make it pair is take away player who did it got point and he play again.
Zadání Zadáním bylo vytvořit hru, kterou mohou hrát na jednom počítači dva, tři, nebo čtyři hráči. Bude možné hrát hru na polích o velikostech 4x4, 6x6 a 8x8. Slova použitá ve hře budou načtena z textového souboru, bude je tedy možno jednoduše změnit. Poté co bude otočena poslední karta hra se končí.
1
Práce Začátek Začal jsem tím, že jsem si založil nový projekt „Pexeso“, v něm jsem si založil package Hra a sem jsem zkopíroval třídu MyPanel. Rozměry pole jsou ze začátku 1024 x 768, ale možnost měnit velikost není zablokována.
Herní pole První věc, kterou jsem vytvořil, bylo herní pole samotné. Mým původním záměrem bylo vytvořit ho pomocí samostatné metody přivolané z třídy Hra1. Tento záměr jsem bohužel musel opustit, jelikož metoda nefungovala. Metodu jsem tedy zrušil a napsal jsem cyklus pro vytvoření pole přímo do třídy MyPanel. Hned poté jsem vytvořil cyklus, který všechna pole po již uhodnutých kartách vyplní bílou.
Metoda Zaokrouhlení Současně s metodou jsem vytvořil metodu ve třídě Hra1. Metodu jsem pojmenoval Zaokrouhlení. Metoda má za úkol převézt souřadnice, přečtené po uvolnění tlačítka myše, na čísla použitelná v mém programu. Tato metoda
2
naštěstí fungovala.
Přečtení souboru Potom jsem vytvořil cyklus, který přečte textový soubor a slova v něm umístí do dvou kolekcí a náhodně je rozmístí do dvou rozměrných polí. Díky tomu vím, jaká slova patří k sobě. Mám díky tomu také vyřešeno, jaká slova budou pod jednotlivými kartami.
Třídy Nezname a Souradnice Při tvorbě programu jsem musel využívat mnoho globálních neznámých. Z toho důvodu jsem si založil třídu Souradnice, a do ní jsem umístil dvě neznáme. Neznámou x a neznámou y. Později jsem zjistil že globálních neznámých budu potřebovat víc, a proto jsem si založil třídu Nezname. Do ní jsem pak umístil všechny další neznámé.
3
Rozměry pole Jako další jsem vytvořil obraz, kde se objeví tři ikony na, kterých jsou napsány rozměry pole. Herní pole pak bude mít velikost podle toho, na co uživatel klikne.
Počet hráčů Další část vytvoří opět tři ikony. Podle toho, na kterou uživatel klikne, bude hrát buď 2, 3, nebo 4 hráči.
4
Otočení karty Jako další jsem naprogramoval, aby se po v průběhu hry po kliknutí „otočila karta“ tj. aby se zobrazilo slovo příslušející k daným souřadnicím dvourozměrného pole.
Porovnání slov Další částí mé práce bylo porovnání, zda k sobě daná dvojice slov vybraná hráčem patří, nebo ne. Toho jsem dosáhl tím, že jsem přečetl slova z pole a porovnal jejich indexi v kolekcích.
Přičtení bodu, nebo posunutí na dalšího hráče Jako jednu z posledních věcí jsem naprogramoval, aby se přičetl bod hráči v případě, že uhodl dvojici a aby tento hráč hrál znovu. V případě, že dvojici neuhodl, hraje další hráč.
Konec hry Poslední věcí, kterou jsem udělal, byla podmínka, že když jsou uhodnuty všechny karty, napíše se na obrazovku „Konec hry“. Dosáhl jsem toho jednoduchým cyklem.
5
Instalace Můj program není potřeba nijak zvláštně instalovat, stačí rozkliknout jako projekt ve správné verzi Javy.
Prohlášení Prohlašuji, že jsem jediným autorem 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.
V Praze, dne 20. 5. 2014
Obsah Anotace.................................................................................................................................................... 1 Anotation................................................................................................................................................. 1 Zadání...................................................................................................................................................... 1 Práce........................................................................................................................................................ 2 Instalace................................................................................................................................................... 4 Prohlášení................................................................................................................................................ 4 Obsah....................................................................................................................................................... 4
6