V Dolních Břežanech dne 10. května 2014



Podobné dokumenty
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

Gymnázium, Praha 6, Arabská 14. Loydova patnáctka. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.

Karty Prší. Anotace: Abstract: Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek

Gymnázium, Praha 6, Arabská 14. předmět: Programování. vyučující: Tomáš Obdržálek. Piškvorky. ročníkový projekt. Le Hoang Nguyen, 1.E.

Postřehová hra. Zadání projektu. 1 Moje cíle

Gymnázium, Praha 6, Arabská 16 Předmět Programování, vyučující Tomáš Obdržálek Hledání Min Ročníkový projekt Filip Mašát, 1.

Gymnázium, Praha 6, Arabská 16. předmět Programování, vyučující Tomáš Obdržálek Lodě Dokumentace ročníkového projektu Martin Karlík, 1E 17.5.

Matematika. Gymnázium, Praha 6, Arabská 16. předmět Programování, vyučující Tomáš Obdržálek. dokumentace ročníkového projektu.

Piškvorky. Gymnázium, Praha 6, Arabská 16. Kristofer Filip, 1.E. Květen Stránka 1. předmět programování, vyučující Tomáš Obdržálek

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Počítačová hra Fotbalový Manažer. ročníkový projekt.

Obsah Anotace :... 1 Anotation 2

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Program pro kontrolu správného vývoje dítěte.

Mobilní hra Block Runner ročníkový projekt David Novák, 1.E květen 2014

Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek Šibenice ročníkový projekt Tadeáš Váša, 1E květen 2014

Sport, sportování a hry

Úvod do počítačových sítí

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY ROČNÍKOVÝ PROJEKT KLOKAN. Informatika, II. ročník

Problém identity instancí asociačních tříd

Google Apps. dokumenty 5. verze 2012




JSR tutorial 2 Transformace v JSR-184

Návod: Ulož hru: Stručný popis: Požadavky: Jak začít hrát? Měna. Plynutí času: Hlavní prostředí hry: HRA

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

Google Apps. kontakty 2. verze 2012

ISO 400 1/250 sekundy f/2,8 ohnisko 70 mm. 82 CANON EOS 550D: Od momentek k nádherným snímkům

ROČNÍKOVÁ PRÁCE. Střední průmyslová škola Ostrov. Webové stránky na téma Město, ve kterém žiji. Třída I2 Tadeáš Seemann

Uživatelská příručka - Naves

Metodický průvodce k výukovému materiálu

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

O soutěži MaSo. Co je to MaSo? Třinácté MaSo, 78 družstev, 46 škol. Organizace. maso.mff.cuni.cz. o dvakrát za rok o nejen počítání o soutěž družstev

Převod prostorových dat katastru nemovitostí do formátu shapefile

Vědomostní test. Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek

TISÍCILETÁ LÍPA V TATOBITECH SE MŮŽE STÁT EVROPSKÝM STROMEM ROKU 2016

X-Sign Basic Uživatelská příručka

Před samotnou tvorbou ještě pár rad.

Návrh a realizace počítače skóre. Počítače skóre. Michal Černý. VOŠ a SŠSE Novovysočanská 48/280 Praha 9

Projekty pro výuku programování v jazyce Java

Půda a její vznik Budování státu: Přemyslovci, Mocní a ti ostatní, Boje mezi knížaty

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Desková hra s podporou hraní po síti Lovci pokladů.

Samuraj & Katana HERNÍ PRAVIDLA 1. CÍL HRY 2. POČET HRÁČŮ 3. OBSAH 4. PŘÍPRAVA KE HŘE

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006

KIV/PIA Semestrální práce

Příručka aplikace Bovo

KOLÉBKA RENESANCE. (Die Wiege der Renaissance)

PLAY IT AGAIN: POPIS HRY Strana 1 z 10 PLAY IT AGAIN : POPIS HRY. Pohled na obrazovku při sázce 2

P7 ICAO rozhlas. P8 Tramtárie

1. ZKOPÍROVÁNÍ VZOROVÉHO GOOGLE

Alfanumerické displeje

GENERAL GAME PLAYING Marika Ivanová Seminář Herní Algoritmy,

MO-ME-N-T MOderní MEtody s Novými Technologiemi CZ.1.07/1.5.00/

DIDAKTICKÁ BINÁRNÍ HRA

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Napínavé soutěžení pro 2 až 4 hráče od 9 let.

Předškoláci ve skautském oddíle. Eva Dvořáková

Nastavení rodičovského účtu Microsoft

Semestrální práce do předmětu Principy tvorby mobilních aplikací

MOBILNÍ MULTIPLAYEROVÁ HRA THE HUNT. Y39PDA, školní rok 2010/2011 Ondřej Šíma

Point of View TAB-P731N- Android 4.0 Tablet PC. Čeština. Obsah

LOGBOOK. Blahopřejeme, našli jste to! Nezapomeňte. Prosím vyvarujte se downtrade

HERNÍ ENGINE PRO TVORBU DIDAKTICKÝCH HER VE FLASHI

ACV-Wars... The racing strategy Game design

ALTERNATIVNÍ SPORTOVNÍ HRY I.

Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.

PŘESTUP/HOSTOVÁNÍ HRÁČE MANUÁL

Magic Games DEV. Pro všechny herní varianty platí: Nejvyšší sázka na hru: 25 bodů Nejvyšší výhra ze hry: bodů

Chit Chat 1 - Lekce 11

Maticové operace projekt č. 3

Jak se přihlásit do systému is.fotbal.cz a jak pracovat se zápisem o utkání

Závěrečná práce studentského projektu OPPA

GPS Manuál. Tato příručka je vánoční dárkem Orlíků pro oddíl.

Vyplácení: a) Přes Hopper v mincích 10,-- Kč. b) pomocí klíčového spínače a tlačítka VÝPLATA (Handpay - funkce)

Objednávka zveřejnění do Obchodního věstníku

Eurobot open 2006 "Funny Golf" Funny Golf FAQ 1

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

VY_32_INOVACE_D5_20_18. Šablona III/2 Inovace a zkvalitnění výuky prostřednictvím ICT II. SVĚTOV

Příručka aplikace Shisen-Sho. Dirk Doerflinger Eugene Trounev Frederik Schwarzer Kontrolor: Frerich Raabe

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Informační systém realitní kanceláře Jan Šimůnek

Admiral American Poker II deluxe DEV

PRAVIDLA: ÚROVEŇ 4 BALÍČEK VS BALÍČEK

Digitální učební materiál

MAGIC GAMES II 750 NEXT GENERATION HERNÍ PLÁN

MOD PLAY VLT - Všeobecný herní plán

WC053 - Foldable Hi-Def 1.3M Trackcam USB 2.0

Časopis Fokusu Vysočina. Bludišťák

Je čas vzít věci do vlastních rukou, ale rychle! Protože chcete uskutečnit zásadní vědecký průlom před tím, než to udělá konkurence.

Moji žáci nepíší domácí úkoly. Co se s tím dá dělat?

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

PowerSwitch ver. 1.6

3. série 2015/2016. Termín odeslání 3. série:

Java - Kresba. 2/28/11 1/8 Java - kresba

Přidání zařízení do aplikace FREE IP pro vzdálený dohled na mobilních zařízeních

Moje oblíbené počítačové hry

Hledáte si i během trvání rekvalifikace práci?

Postup objednávky Microsoft Action Pack Subscription

NÁVOD jak na webinář přes WizIQ

Sciphone I68+ Rychlý návod

F*A*Q. Často-kladené-dotazy

MA_CZH_CLOCK_UserManual DGT 960 Rev1 1

Transkript:

Námořní bitva Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek dokumentace ročníkového projektu Otto Vodvářka, 1E květen 2014

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 Dolních Břežanech dne 10. května 2014 1

Anotace Cílem projektu byl vývoj hry Námořní bitva. Dva hráči si na začátku hry zvolí umístění jejich 5 lodí na hrací ploše 10x10 a střídavě se snaží zničit soupeřovi lodě. Aplikace je vyvinuta pro osobní počítače, je graficky zpracována a umožňuje hru pro dva hráče (není možné hrát proti počítači). Aim of the project was development of a game The Naval battle. In the beginning two players select positions of theirs 5 ships on playing area 10x10 and they are trying alternately destroy opponent s ships. The application is developed for personal computers, it is graphically designed and allows game for 2 players (it is not possible to play against computer). Zada ní Funkce na začátku si oba hráči zvolí umístění jejich 5 lodí (svisle nebo vodorovně) a zvolí si jméno zkontroluje se počet lodí hráč klikne na jedno z políček, označí se, zda se trefil nebo minul program sám pozná, kdy a jaký hráč vyhrál program JAVA Bonus pokročilá kontrola pozice lodí počáteční menu nastavení 2

Na mor ní bitva Pravidla hraje se na ploše 10x10 na začátku si hráči zvolí pozice lodí různých velikostí lodě se nesmí dotýkat plochami každý hráč má na jedno kolo pouze 1 pokus pokud se trefí, políčko se změní na červenou barvu, pokud mine, změní se na zelenou hráč vítězí, pokud zničí všechny soupeřovi lodě Typy lodí Křižník Člun Letadlová loď Ponorka Instalace a ovládání hry Hra se ovládá pomocí myši a klávesnice. Hru není možné ovládat přes dotykový displej. Spustitelný JAR soubor se nachází v podsložce projektu Namorni_Bitva pojmenovanou dist. Spustíte dvojitým klinutím myši. Pokud se soubor nespustí, tak zkontrolujte, zda máte na počítači nainstalovanou Javu. Pokud se soubor nespustí, přestože máte Javu nainstalovanou, tak zkuste do příkazového řádku napsat tento příkaz: java jar nazevsouborujar.jar Datové struktury V projektu jsem se pokoušel co nejvíce oddělit grafické a logické vrstvy. Pro menu a hrací plochu jsem vytvořil třídy typu JFrame a pro okna na rozmístění lodí a nastavení třídy typu JDialog. Dále jsem vytvořil třídy Lode, Hrac, Plocha a Platno. Třida Lode má pouze statické atributy počtu lodí daného typu, protože počet lodí není stálý, ale uživatel ho může 3

v nastavení změnit. Také obsahuje pár metod pro kontrolu pozic (viz. Kontrola pozic). Třída Hrac obsahuje pouze vlastnosti hráče. Třída Platno obsahuje metodu paintcomponent, která vykresluje plochu, kterou dostane třída Platno v konstruktoru. Ve třídě Plocha je většina logické vrstvy jako např. vyhodnocení kliknutí. Kontrola pozic Kontrola pozic pro mě byla nejobtížnější věcí na tomto projektu. Jelikož jsem pozice lodí měl uložené v poli, tak jsem si toto pole naklonoval do nového, protože ho potřebuji upravovat. Poté všechny procesy jsem dělal v tomto poli. Nejdříve jsem musel dvojicí for cyklů najít vždy počáteční část lodi. Poté jsem zjistil, jakým směrem tato loď vede. Poté jsem volal metody, které měly v parametru souřadnice počátku lodi, typ lodi a její směr. Metoda vracela true nebo false, pokud se tam loď daného typu opravdu nacházela. Pokud metoda vrátila true, tak se zavolala metoda, která vracela pole tak, aby program věděl, že tu loď už má označenou. Grafické zpracování Pro grafickou část projektu jsem použil technologii Swing. Rozmístění tlačítek, velikost okna atd. jsem dělal v grafickém návrháři, se kterým jsem se naučil pracovat, protože mi to přijde mnohem praktičtější než vše dělat ručně. Hrací plocha je tvořena JPanelem, na který se vykresluje 10x10 čtverců. Řešené problémy Součásti projektu byly samozřejmě i problémy. Velký problém mám s vykreslováním na JPanel. Zvláštností je, že tento problém na nějakých počítačích z neznámého důvodu nemám. Vždy když na JPanel kliknu, tak se velmi zvláštně rozmaže. Bohužel tento problém se mi nepodařilo vyřešit. Před kliknutím: Po kliknutí: 4

Další problém jsem měl při klonování pole. Zkoušel jsem jednoduše tento kód: int[][] pole1 = pole2; Tento kód nefungoval, což bylo celkem pochopitelné, protože pole1 odkazovalo na pole 2. Poté jsem použil metodu clone: int[][] pole1 = pole2.clone(); Z mě neznámých důvodů tento kód pořád nefungoval, tak jsem byl nucen klonování pole udělat ručně: Za ve r for (int i = 0; i < pole1.length; i++) { for (int j = 0; j < pole1[0].length; j++){ pole1[i][j] = pole2[i][j]; } } Tato ročníková práce byla moje první větší práce z programování a jsem s ní velice spokojen. Ze začátku jsem si moc nevěřil, takže jsem si do zadání dal lehké věci, ale během projektu jsem zjistil, že na tom nejsem zas tak špatně, takže jsem si trochu ztížil zadání a přidal pár bonusů. Také jsem velmi rád, že se mi podařilo splnit všechny bonusy. Tato práce mě velice bavila a rozhodně se budu pokoušet programovat i další hry. 5