Verze : 226 NS, odstavců, slov, znaků, bajtů. Adventura. Rudolf Pecinovský 2015

Rozměr: px
Začít zobrazení ze stránky:

Download "Verze 0.13.5299: 226 NS, 5 496 odstavců, 54 943 slov, 406 692 znaků, 2 052 608 bajtů. Adventura. Rudolf Pecinovský 2015"

Transkript

1 Verze : 226 NS, odstavců, slov, znaků, bajtů Návrh semestrálního projektu a jeho rámce Adventura Rudolf Pecinovský R_Adventura.doc verze , uloženo: ne :45 Strana 1 z 240

2 Rudolf Pecinovský Návrh semestrálního projektu a jeho rámce Adventura Copyright Grada Publishing a.s., 2015 V knize použité názvy mohou být ochrannými známkami nebo registrovanými ochrannými známkami příslušných vlastníků. Vydala Grada Publishing a.s. U Průhonu 22, Praha 7 jako svoji publikaci Návrh vnitřního layoutu Rudolf Pecinovský Zlom Rudolf Pecinovský Počet stran První vydání, Praha 2015 ISBN R_Adventura.doc verze , uloženo: ne :45 Strana 2 z 240

3 Všem, kteří se chtějí něco naučiti 49R_Adventura.doc verze , uloženo: ne :45 Strana 3 z 240

4 Stručný obsah Stručný obsah Stručný obsah... 4 Podrobný obsah... 5 Seznam programů Seznam obrázků Úvod Část I: Pro studenty Zadání projektu Začínáme testy Návrh správce scénářů konkrétní hry Návrh rámce pro hru Začínáme tvořit vlastní hru Vytváříme svět hry Vytvoření prvních povinných příkazů Definice společného rodiče kontejnerů objektů Definice nestandardních příkazů Realizace rozhovoru Definice uživatelského rozhraní Vylepšování architektury refaktorace Doporučení pro obhajobu Část II: Pro učitele a zkušenější studenty R_Adventura.doc verze , uloženo: ne :45 Strana 4 z 240

5 Podrobný obsah 5 Podrobný obsah Podrobný obsah Stručný obsah... 4 Podrobný obsah... 5 Seznam programů Seznam obrázků Úvod Komu je kniha určena Potřebné vybavení Použité konvence Odbočka Část I: Pro studenty Zadání projektu Koncepce hry Příklady her Shrnutí co jsme se naučili Začínáme testy Koncepce frameworku Jak testovat Programování řízené testy Jednotkové a integrační testy Možnosti testování naší hry Typ scénáře třída TypeOfScenario Kroky scénáře třída ScenarioStep Typ kroků scénáře třída TypeOfStep Třída ScenarioStep podrobněji Správce scénářů Spravované scénáře Jméno a ID autora Jak získat hru k testování Interfejs IGame Vytvoření správce Předání scénářů společnému rodiči Třída Scenario Diagram tříd balíčku scenario Interfejs IGSMFactory Návrh správce scénářů konkrétní hry Zadání, které budeme řešit Prázdný správce scénářů Import k odstranění R_Adventura.doc verze , uloženo: ne :45 Strana 5 z 240

6 6 Návrh semestrálního projektu a jeho rámce Adventura 3.3 Jednoduchý správce využívající literály Počáteční krok Pokračovací kroky Přechod mezi scénáři Základní chybový scénář Konstruktor Hlavní metoda Trochu chytřejší správce Definice třídy Texts Definice správce scénářů využívající konstanty Úkol Náměty Co jsme prozatím naprogramovali Návrh rámce pro hru Koncepce rámce hry Objekty vystupující ve hře Zadání Definice použitých interfejsů Hra IGame Svět IWorld Prostor ISpace Příkaz ICommand Přechod Objekt IObject Hráč Batoh IBag Úkol, cíl Množství, kapacita Upřesnění návrhu rámce ICommand IBag IObject ISpace IWorld IGame Doplnění společných rodičů Pojmenované objekty Kontejnery objektů Doplnění uživatelského rozhraní Diagram tříd balíčku game_txt Diagram tříd v balíčku empty_classes Začínáme tvořit vlastní hru Výběr metody návrhu Začínáme s třídou hry Pokračujeme v testech Kdo má mít na starosti zpracování příkazů Tři skupiny programů Jak jsou na tom příkazy? Definice správce příkazů Úprava definice konstruktoru Vytvoření jednotlivých příkazů Úprava metody execute(string) ve třídě hry Definice metody pro provádění příkazů Dva režimy zpracování příkazů Metoda isalive() ve třídě hry R_Adventura.doc verze , uloženo: ne :45 Strana 6 z 240

7 Podrobný obsah 7 Metoda isalive() ve správci příkazů Definice metody execute(string) Metoda pro spuštění hry startgame(string) Metoda pro pracování běžného příkazu executecommoncomand(string) Rozdělení příkazového řádku na slova Převedení počátečního slova na příkaz Prozatímní podoba definice třídy ACommand Co jsme prozatím naprogramovali Vytváříme svět hry Analýza chybového hlášení Svět hry jako správce prostor hry Vytvoření třídy světa hry Apartment Definice metody getallareas() Třída prostorů hry Room Konstruktor místnosti Metoda getname() Metoda getneighbors() Metoda getobjects() Třída objektů v prostorech Thing Váha, přenositelnost Zveřejnění příznaků Vlastní definice Dokončení definice třídy Room Dokončení definice třídy Apartment Metoda getallareas() Doplnění konstruktoru Metoda getcurrentarea() Test Úprava informací o stavu hry Úvahy o inicializaci prostorů Realizace inicializace prostorů Inicializace ve třídě ACommand Inicializace ve třídě Apartment Inicializace instancí třídy Room Test Doplnění batohu Metoda getcapacity() Metody getobjects() a initialize() Metoda getbag() ve třídě hry Test Co jsme prozatím naprogramovali Vytvoření prvních povinných příkazů Jak sjednotit postup pro většinu her Definice nového scénáře Úprava definice konstruktoru Úprava definice metody main(string[]) Definice příkazu pro nápovědu Zkopírování kostry třídy Rodičovská třída Metoda execute(string...) Test Doplnění těla metody getallcommands() ve třídě hry Doplnění těla metody getallcommands() ve třídě správce příkazů R_Adventura.doc verze , uloženo: ne :45 Strana 7 z 240

8 8 Návrh semestrálního projektu a jeho rámce Adventura Test Definice příkazu pro přesun z aktuálního prostoru do zadaného sousedního prostoru Metoda execute(string...) Existence parametru Korektnost parametru Přesun do cílového prostoru Test Definice příkazu pro zvednutí objektu v aktuálním prostoru a jeho přemístění do batohu Existence parametru Korektnost parametru Principy další práce příkazu Úpravy definice třídy prostorů Úpravy definice třídy batohu Definice metody execute(string...) definovaného příkazu Test Co jsme prozatím naprogramovali Definice společného rodiče kontejnerů objektů Definice příkazu pro položení objektu Co bychom mohli do společného předka vytknout Definice společného předka kontejnerů objektů Metoda getobjects() Metody getobject(string) a removeobject(thing) Zpětné nastavení atributu objects na private Metoda tryaddobject(thing) Inicializace objektů Názvy metod Nastavení kapacity Inicializace kolekce objects Příkaz pro pokládání objektů CommandPutDown Test Příkaz k předčasnému ukončení hry CommandExit Test Prověření programu chybovým scénářem Doplnění reakce na prázdný příkaz Test Co jsme prozatím naprogramovali Definice nestandardních příkazů Změna testu Definice příkazu pro otevření ledničky Definice třídy Flags Vytvoření třídy CommandOpen Definice metody execute(string...) Test existence parametru Test přítomnost otevíraného objektu Test otevíratelnosti zadaného objektu Dokončení definice Doplnění testu podloženost Test Oprava definice příkazu pro položení objektu Definice příkazu pro přečtení papíru Test existence parametru Test přítomnosti daného objektu v batohu R_Adventura.doc verze , uloženo: ne :45 Strana 8 z 240

9 Podrobný obsah 9 Test, zda je požadováno přečtení objektu, který lze opravdu přečíst Test nasazených brýlí Výsledná podoba metody Test Definice příkazu pro nasazení brýlí Test Definice příkazu pro podložení ledničky Test plnosti batohu Definice metody execute(string...) Test Co jsme prozatím naprogramovali Co jsme prozatím přeskočili Realizace rozhovoru Specifika rozhovoru Přepnutí do konverzačního režimu Zavedení příznaku prověřenosti Úprava metody execute(string...) ve třídě CommandPickUp Třída Conversation Metoda start(thing) Úprava metody executecommand(string) ve třídě ACommand Definice metody answer(string) ve třídě Conversation Stavy rozhovoru Reakce v závislosti na stavu Vlastní definice metody answer(string) Test Definice metody waitingfortheage(string) Test Definice metody waitingfortheyear(string) Test Příkaz pro zavření ledničky CommandCLose Test Co jsme prozatím naprogramovali Definice uživatelského rozhraní Co je třeba navrhnout Úprava rozdělení do balíčků Uživatelské rozhraní využívající služeb třídy javax.swing.joptionpane Definice metody startgame() Metody třídy JOptionPane Definice metody startgame(igame) Uživatelské rozhraní komunikující přes standardní vstup a výstup Nevýhody používání standardního vstupu a výstupu Třída java.util.scanner Vytvoření třídy pro konzolový vstup Zobecnění uvedených řešení Interfejs IGamePlayer Hlavní metoda umožňující volbu použitého rozhraní Výsledná definice třídy UIC_GamePlayer Další zobecnění uživatelského rozhraní Co jsme prozatím naprogramovali Vylepšování architektury refaktorace Co jsme prozatím naprogramovali Doporučení pro obhajobu R_Adventura.doc verze , uloženo: ne :45 Strana 9 z 240

10 10 Návrh semestrálního projektu a jeho rámce Adventura Shrnutí co jsme se naučili Část II: Pro učitele a zkušenější studenty R_Adventura.doc verze , uloženo: ne :45 Strana 10 z 240

11 Seznam programů 11 Seznam programů Seznam programů Výpis 2.1: Definice třídy TypeOfScenario Výpis 2.2: Výčtový typ TypeOfStep Výpis 2.3: Výchozí podoba třídy ScenarioStep Výpis 3.1: Výpis první části zdrojového kódu třídy ManagerWithLiterals až po definici prvních dvou kroků úspěšného (šťastného) scénáře Výpis 3.2: Výpis druhé části zdrojového kódu třídy ManagerWithLiterals od posledního kroku úspěšného (šťastného) scénáře až po definici prvních čtyř kroků Výpis 3.3: Výpis třetí části zdrojového kódu třídy ManagerWithLiterals obsahující deklaraci atributu s odkazem na jedináčka, tovární metody, konstruktoru a metody main(string[]) Výpis 3.4: Výpis autotestu správce scénářů Výpis 3.5: Definice třídy Texts definující jednotlivé textové konstanty Výpis 3.6: Definice prvních tří kroků úspěšného scénáře ve třídě Výpis 5.1: ManagerWithConstants Definice metod getauthorname(), getauthorid() a getscenariomanager() ve třídě hry Výpis 5.2: Definice metod isalive() ve třídě hry Výpis 5.3: Upravená definice konstruktoru instancí třídy ACommand Výpis 5.4: Definice metody execute(string) ve třídě OfficialApartmentGame Výpis 5.5: Upravená definice metody isalive() ve třídě OfficialApartmentGame Výpis 5.6: Prozatímní podoba definice třídy ACommand Výpis 6.1: Definice konstruktoru instancí třídy Room a jím inicializovaných atributů Výpis 6.2: Definice třídy Thing, jejíž instance představují objekty Výpis 6.3: Upravená definice konstruktoru instancí třídy Apartment Výpis 6.4: Upravená definice metody getcurrentarea() ve třídě Apartment Výpis 6.5: Upravená definice metody getworld() Výpis 6.6: Upravená definice metody startgame(string) spolu s metodou initialize() ve třídě ACommand Výpis 6.7: Definice metody initialize()ve třídě Apartment Výpis 6.8: Definice metod initialize(), initializeneighbors() a initializeobjects() ve třídě Room Výpis 6.9: Definice metody getroom(string) ve třídě Apartment Výpis 7.1: Definice pole REQUIRED_STEPS ve třídě OfficialApartmentManager Výpis 7.2: Upravená definice konstruktoru třídy OfficialApartmentManager Výpis 7.3: Upravená definice metody main(string[]) ve třídě OfficialApartmentManager Výpis 7.4: Definice konstruktoru instancí třídy CommandHelp Výpis 7.5: Definice metody execute(string...) ve třídě CommandHelp Výpis 7.6: Definice metody getallcommands() ve třídě OfficialApartmentGame R_Adventura.doc verze , uloženo: ne :45 Strana 11 z 240

12 12 Návrh semestrálního projektu a jeho rámce Adventura Výpis 7.7: Definice metody getallcommands() ve třídě ACommand Výpis 7.8: Upravená definice konstruktoru ve třídě CommandMove Výpis 7.9: Definice metody execute(string...) ve třídě CommandMove Výpis 7.10: Definice metod getobject(string) a removeobject(thing) ve třídě Room Výpis 7.11: Definice metody tryaddobject(thing) ve třídě Hands Výpis 7.12: Definice metody execute(string...) ve třídě CommandPickUp Výpis 8.1: Definice třídy ThingContainer Výpis 8.2: Definice metody execute(string...) ve třídě CommandPutDown Výpis 8.3: Definice metody execute(string...) ve třídě CommandExit Výpis 8.4: Definice metody executecommand(string) ve třídě ACommand Výpis 9.1: Upravená definice statické metody initialize() třídy ACommand Výpis 9.2: Předběžné podoba definice třídy Flags Výpis 9.3: Definice metody execute(string...) ve třídě CommandOpen Výpis 9.4: Definice metody execute(string...) ve třídě CommandRead Výpis 9.5: Definice metody execute(string...) ve třídě CommandPutOnGlasses Výpis 9.6: Definice metody isfull() instancí třídy ThingContainer Výpis 9.7: Definice metody execute(string...) instancí třídy CommandSupportIcebox Výpis 10.1: Upravená definice metody execute(string...) ve třídě CommandPickUp Výpis 10.2: Definice metody start(thing) ve třídě Conversation Výpis 10.3: Upravená definice metody executecommand ve třídě ACommand Výpis 10.4: Definice metody answer(string) ve třídě Conversation Výpis 10.5: Definice metody waitingfortheage(string) ve třídě Conversation Výpis 10.6: Definice metody waitingfortheyear(string) ve třídě Conversation Výpis 10.7: Definice metody execute(string...) instancí třídy CommandCLose Výpis 11.1: Definice metody startgame() ve třídě UIA_JOptionPane Výpis 11.2: Definice metody startgame(igame) ve třídě UIA_JOptionPane Výpis 11.3: Definice metody startgame(igame) ve třídě UIB_Scanner Výpis 11.4: Definice metody startgame(igame) ve třídě UIB_Scanner Výpis 11.5: Definice interfejsu IGamePlayer Výpis 11.6: Definice třídy UIC_GamePlayer Výpis 11.7: Definice třídy UID_Multiplayer Výpis 12.1: Definice Class Výpis 13.1: Definice Class R_Adventura.doc verze , uloženo: ne :45 Strana 12 z 240

13 Seznam obrázků 13 Seznam obrázků Seznam obrázků Obrázek 2.1 Jednoduchý diagram tříd balíčku scenario Obrázek 4.1 Jednoduchý diagram tříd balíčku game_txt Obrázek 4.2 Jednoduchý diagram tříd balíčku empty_classes Obrázek 5.1 Aktuální diagram tříd projektu poté, co byla definována kostra třídy a správce příkazů Obrázek 6.1 Aktuální diagram tříd projektu poté, co byly definovány třídy reprezentující svět hry a jeho části Obrázek 7.1 Aktuální diagram tříd projektu poté, co byly definovány třídy reprezentující první tři povinné příkazy hry Obrázek 8.1 Aktuální diagram tříd projektu poté, co byly definovány třídy reprezentující všechny povinné příkazy hry Obrázek 9.1 Aktuální diagram tříd projektu poté, co byly definovány třídy reprezentující nestandardní příkazy hry bez podpory rozhovoru Obrázek 10.1 Stavový diagram rozhovoru přechody mezi stavy v závislosti na odpovědi hráče Obrázek 10.2 Aktuální diagram tříd projektu poté, co byly definována třídy realizující podporu rozhovoru Obrázek 11.1 Dialogové okno s úvodní zprávou hry čekající na zadání příkazu Obrázek 11.2 Aktuální diagram tříd balíčku s doposud definovanými třídami řešícími textové uživatelské rozhraní Obrázek 12.1 Vlastní popis obrázku (pozor na počáteční tabulátor zachovat!) Obrázek 12.2 Aktuální diagram tříd projektu poté, co byly definovány třídy reprezentující nestandardní příkazy hry bez podpory rozhovoru Obrázek 13.1 Popis obrázku (pozor na počáteční tabulátor zachovat!) R_Adventura.doc verze , uloženo: ne :45 Strana 13 z 240

14 14 Návrh semestrálního projektu a jeho rámce Adventura Úvod Úvod Komu je kniha určena Tato kniha má sloužit jako doplněk mých učebnic zabývajících se architekturou objektově orientovaných programů. Je určena studentům úvodních kurzů programování, kteří připravují svůj semestrální projekt a nedokáží si správně zapamatovat vše, co jsme si na přednáškách či cvičeních řekli. Má proto sloužit jako podklad k zopakování si látky z hodiny. Kniha přepokládá, že čtenář zná základy objektově orientovaného programování na úrovni základního kurzu mohli bychom říci na úrovní probrané v učebnicích Java 7 Učebnice objektové architektury pro začátečníky Java 8 Úvod do objektové architektury pro mírně pokročilé Navazuje na ně a ukazuje čtenářům, jak postupovat při návrhu poněkud většího a komplexnějšího projektu, než jsou projekty probírané na hodinách. Současně jim má pomoci osvojit si práci s externími knihovnami a frameworky. Potřebné vybavení Pro úspěšné studium této knihy budete potřebovat dvě věci: dostatečně výkonný počítač, základní vývojovou sadu Javy. Pro úspěšný vývoj programů potřebujete ještě vhodný vývojový nástroj. Je zcela na vás, jaký nástroj zvolíte. Na hodinách používáme NetBeans a na ně se budu občas odkazovat i ve výkladu. Jejich použití ale není nezbytně nutné. Někteří studenti dávají přednost ověřenému a jednoduchému prostředí BlueJ, jiné použijí některý z dalších profesionálních prostředí Eclipse nebo INTELLIJ Idea. Použité konvence K tomu, abyste se v textu lépe vyznali a také abyste si vykládanou látku lépe zapamatovali, používám několik prostředků pro odlišení a zvýraznění textu. 49R_Adventura.doc verze , uloženo: ne :45 Strana 14 z 240

15 Úvod 15 Objekty Názvy Citace Adresy Program První výskyt nějakého termínu a další texty, které chci zvýraznit, vysazuji tučně. Názvy firem a jejích produktů vysazuji kurzivou. Kurzivou vysazuji také názvy kapitol, podkapitol a oddílů, na které se v textu odkazuji. Texty, které si můžete přečíst na displeji, např. názvy polí v dialogových oknech či názvy příkazů v nabídkách, vysazuji tučným bezpatkovým písmem. Názvy souborů a internetové adresy vysazuji obyčejným bezpatkovým písmem. Texty programů a jejich částí vysazuji neproporcionálním písmem. Kromě částí textu, které považuji za důležité zvýraznit nebo alespoň odlišit od okolního textu, najdete v textu ještě řadu doplňujících poznámek a vysvětlivek. Všechny budou v jednotném rámečku, který bude označen ikonou charakterizující druh informace, kterou vám chce poznámka či vysvětlivka předat. Symbol jin-jang bude uvozovat poznámky, s nimiž se setkáte na počátku každé kapitoly. Zde vám vždy prozradím, co se v dané kapitole naučíte. Otevřená schránka s dopisy označuje informace o projektu, s nímž budeme v dalším textu pracovat nebo v něm najdete vzorové řešení. Obrázek knihy označuje poznámku týkající se používané terminologie. Tato poznámka většinou upozorňuje na další používané termíny označující stejnou skutečnost nebo na konvence, které se k probírané problematice vztahují. Seznam všech terminologických poznámek najdete v rejstříku pod heslem terminologie. Obrázek počítače označuje zadání úkolu, který máte samostatně vypracovat. Seznam všech úloh najdete v rejstříku pod heslem úloha. Píšící ruka označuje obyčejnou poznámku, která pouze doplňuje informace z hlavního proudu výkladu o nějakou zajímavost. 49R_Adventura.doc verze , uloženo: ne :45 Strana 15 z 240

16 16 Návrh semestrálního projektu a jeho rámce Adventura Ruka s hrozícím prstem upozorňuje na věci, které byste měli určitě vědět a na které byste si měli dát pozor, protože jejich zanedbání vás většinou dostane do problémů. Usměváček vás bude upozorňovat na různé tipy, kterými můžete vylepšit svůj program nebo zefektivnit svoji práci. Mračoun vás naopak bude upozorňovat na různá úskalí programovacího jazyka nebo programů, s nimiž budeme pracovat, a bude vám radit, jak se těmto nástrahám vyhnout či jak to zařídit, aby vám alespoň pokud možno nevadily. Brýle označují tzv. poznámky pro šťouraly, ve kterých se vás snažím seznámit s některými zajímavými vlastnostmi probírané konstrukce nebo upozorňuji na některé souvislosti, avšak které nejsou k pochopení látky nezbytné. Symbol znamení raka označuje poznámku, ve které poukazuji na interpretaci nějakého obratu či konstrukce v nějaké analogii, nejčastěji v analogii ze světa robotů, kterou zavádím v podkapitole Chyba! Nenalezen zdroj odkazů. na straně Chyba! Záložka není definována.. Seznam odkazů na tuto analogii najdete v rejstříku pod heslem analogie. Odbočka Občas je potřeba vysvětlit něco, co nezapadá přímo do okolního textu. V takových případech používám podšeděný blok se silnou čarou po straně. Tento podšeděný blok je takovou drobnou odbočkou od ostatního výkladu. Nadpis podšeděného bloku pak najdete i v podrobném obsahu mezi nečíslovanými nadpisy. 49R_Adventura.doc verze , uloženo: ne :45 Strana 16 z 240

17 Část I: Pro studenty Část I: Pro studenty Tato část vám nejprve naznačí, jak je možno navrhnout koncepci rámce (frameworku) pro sadu aplikací realizujících konverzační hru, a pak předvede, jak je možno navrhnout hru, která bude odpovídat danému rámci. 49R_Adventura.doc verze , uloženo: ne :45 Strana 17 z 240

18 18 Návrh semestrálního projektu a jeho rámce Adventura 1. Zadání projektu Kapitola 1 Zadání projektu Co se v kapitole naučíme Tato kapitola je nejkratší kapitolou celé knihy. Zde si vysvětlíme zadání projektů, pro které v následujících kapitolách navrhneme společný rámec a následně vytvoříme jeden ukázkový projekt 1.1 Koncepce hry Vytvářenou aplikací bude jednoduchá konverzační hra, při níž se hráč snaží v konečném počtu kroků dostat k předem zadanému cíli. Vždy programu zadá textový příkaz naznačující, co má v daném okamžiku udělal, a program mu odpoví. V odpovědi hráči vysvětlí, v jaké situaci se po provedení této akce nachází, a případně mu naznačí, jaké jsou jeho další možnosti. Bude to tedy takový rozhovor anebo, chcete-li, textový pink-ponk: hráč pošle text příkazu, program vrátí text odpovědi. A tak stále kolem dokola, dokud hráč nedosáhne požadovaného cíle hry nebo dokud jej to nepřestane bavit. Hra přitom bude definována jako jedináček, který po ukončení jednoho běhu bude schopen opětného spuštění nového běhu hry, aniž by bylo třeba ukončovat program. Hra bude probíhat ve virtuálním světě, v němž existuje několik prostorů, které spolu zadaným způsobem sousedí. Těmito prostory mohou být místnosti v budově, části krajiny, planety, etapy života apod. Hra musí nabízet příkaz zprostředkující přechod z aktuálního prostoru do sousedního prostoru. Za sousední prostor přitom považujeme takový, do nějž lze jednoduše přejít. Je-li třeba nejprve splnit nějakou podmínku, stane se onen potenciálně sousední prostor skutečně sousedním až po splnění dané podmínky. Tyto podmínky mohou být různé: 49R_Adventura.doc verze , uloženo: ne :45 Strana 18 z 240

19 Kapitola 1: Zadání projektu 19 Jsou-li oněmi prostory místnosti v budově, může být potřeba nejprve odemknout spojovací dveře. Jsou-li oněmi prostory části krajiny, můžeme se na sousední louku za potokem dostat až poté, co postavíme most přes potok. Jsou-li oněmi prostory semestry vysoké školy, kterou máte za cíl absolvovat, musíte odemknout následující semestr třeba tak, že dojdete na studijní oddělení a ukážete index s absolvovanými předměty, aby vás mohli zapsat do dalšího semestru. V každém prostoru se mohou nacházet různé objekty. Některé z nich může hráč vzít, uložit je do pomyslného batohu, aby mu v budoucnu pomohly ke splnění nějakého pomocného úkolu nebo dokonce cíle celé hry. Hra musí proto nabízet příkaz, který přesune zadaný objekt z aktuálního prostoru (tj. prostoru, v němž se právě nachází hráč) do batohu a příkaz, který naopak přesune objekt z batohu do aktuálního prostoru. Množství objektů, které se do batohu vejdou, je však omezené. Příkaz pro přesun objektu z prostoru do batohu proto nesmí povolit překročení kapacity batohu. Navíc musí ve světě hry existovat objekty, které není možno zvednout a přemístit do batohu (okno, potok, studijní referentka, ). Příkaz pro zvednutí objektu proto nesmí umožnit uložit do batohu nezvednutelný objekt. Mezi objekty mohou (ale nemusejí) být i takové, s nimiž může hráč komunikovat a případně od nich získat informaci potřebnou ke zdárnému pokračování. Tyto objekty mohou být jak živé (trpaslík, kouzelný dědeček, ), tak neživé (robot, magnetofon, knížka, ). Mezi objekty v prostoru mohou (ale opět nemusejí) být i takové, které jsou za jistých okolností novým prostorem s jeho vlastními objekty. Takovýmto objektem-prostorem může být např. truhla, trezor, nalezený batoh apod. Tyto nestandardní prostory nemají žádné sousedy, a proto se do nich musíme přesunout nějakým nestandardním příkazem např. otevři truhla a zpět příkazem zavři trhula. Takovýmto prostorem může být např. i deska stolu. Do jejího prostoru se přesunete např. příkazem koukni_na_stůl. Pak uvidíte jenom objekty, které se na stole nacházejí, a některý z nich se vám může hodit. 1.2 Příklady her Na scénářích hry se pozná nápaditost studenta. Ti prostodušší volí hry na téma Probudil(a) jste se po těžkém flámu v neznámém bytě. Najděte svoje spodky a svršky a opusťte byt. Ti o trochu nápaditější vykrádají banky, utíkají z vězení. 49R_Adventura.doc verze , uloženo: ne :45 Strana 19 z 240

20 20 Návrh semestrálního projektu a jeho rámce Adventura Další vytvářejí hry na motivy pohádek (např. O kohoutkovi a slepičce nebo Červená karkulka) nebo známých knížek a televizních seriálů (Star track, Harry Potter, Červený trpaslík, Pán času, ). Občas se objeví hry s kuriózním námětem. Jeden student naprogramoval hru Život, ve které se hráč na startu narodí a prostory jsou jednotlivé životní etapy (nemluvně, školka, školák, středoškolák, ). Cílem hry je úspěšně umřít a do té doby zanechat hojné a dobře zaopatřené potomstvo. Jedna studentka naprogramovala hru představující studium na vysoké škole. Prostory byly jednotlivé semestry a k tomu, aby se další semestr sousedem stal aktuálního, musel hráč-student splnit jisté úkoly nasbírat potřebné objekty, kterými zde byly absolvované zkoušky. Jeden student vozíčkář naprogramoval hru, jejímž cílem bylo dostat se ráno z domova do školy, přičemž se na cestě objevovaly různé náhodné překážky (nefungující výtah do Metra, autobus nepřizpůsobený přepravě vozíčkářů, atd.). Díky náhodně se vyskytujícím překážkám se mohlo stát, že občas hra nešla úspěšně dohrát a hráč ten den do školy nedorazil. Jak vidíte, námětů je nepřeberné množství a je jenom na vaší fantazii, abyste vymysleli takový, aby vás návrh příslušného programu také trochu bavil. 1.3 Shrnutí co jsme se naučili V kapitole jste se seznámili s koncepcí hry, o jejímž návrhu si budeme povídat ve zbytku knihy 49R_Adventura.doc verze , uloženo: ne :45 Strana 20 z 240

21 Kapitola 2: Začínáme testy Začínáme testy Kapitola 2 Začínáme testy Co se v kapitole naučíme V této kapitole si ukážeme, co bychom měli dělat před tím, než začneme programovat vlastní hru. Zejména se soustředíme na přípravu testů, které budou prověřovat správnost vytvořených programů. Přitom budeme mít na mysli, že každý ze studentů ve třídě bude vyvíjet vlastní verzi hry, takže bychom měli testy připravit tak, aby co nejjednodušeji otestovali kteroukoliv z vyvíjených her. V průběhu kapitoly se vám budu snažit ukázat, jak můžete takovéto řešení navrhnout. Řada čtenářů má komplex z toho, že oni by to tak vymyslet nedokázali. Nenechte se tím zviklat. Všechno chce jistou zkušenost. Až budete zkušenější, nebudou vám takovéto konstrukce dělat problémy a dost možná, že byste nakonec dokázali požadované řešení navrhnout lépe než já. Snažte se jenom sledovat tok mých úvah a porozumět tomu, proč jsem se rozhodl použít prezentované řešení. Kdybyste náhodou ztratili nit, nezoufejte. Zkuste začít od závěrečného shrnutí toho, co by měl znát tvůrce hry, a časem se můžete k této analýze vrátit. 2.1 Koncepce frameworku Abych studentům umožnil se soustředit na vlastní návrh hry a nemuseli se rozptylovat některými pomocnými činnostmi a abych jim (a s nimi i sobě) umožnil co nejsnadněji kontrolovat dodržení všech požadavků, vytvořil jsem speciální framework, který obsahuje řadu datových typů zjednodušujících návrh programu i jeho následné testování a vyhodnocení korektnosti jeho návrhu. 49R_Adventura.doc verze , uloženo: ne :45 Strana 21 z 240

Metodika. Architecture First. Rudolf Pecinovský rudolf@pecinovsky.cz

Metodika. Architecture First. Rudolf Pecinovský rudolf@pecinovsky.cz Copyright Rudolf Pecinovský, Soubor: 2014_Comm_PrW_Architecture First Methodology.doc, verze 1.00.2413, uloženo po 9.6.2014 14:43 1 z 39 Metodika Architecture First Rudolf Pecinovský rudolf@pecinovsky.cz

Více

Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský rudolf@pecinovsky.cz

Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský rudolf@pecinovsky.cz Vaše jistota na trhu IT Balíčky Rudolf Pecinovský rudolf@pecinovsky.cz Problémy velkých aplikací Rozsáhlé aplikace používají velké množství názvů objektů a jejich zpráv, které různé části programu sdílí

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

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

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33 Stručný obsah Část 1: Zahřívací kolo Kapitola 1 Co je a k čemu je návrhový vzor 33 Kapitola 2 Zásady objektově orientovaného programování 39 Kapitola 3 Co konstruktor neumí (Jednoduchá tovární metoda Simple

Více

Generátor kódu. a jeho uplatnění ve výuce programování. Rudolf PECINOVSKÝ rudolf@pecinovsky.cz

Generátor kódu. a jeho uplatnění ve výuce programování. Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Generátor kódu a jeho uplatnění ve výuce programování Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Trendy poslední doby Další a další státy si uvědomují nutnost zařazení výuky programování do učiva základních

Více

MS Word 2007 Šablony programu MS Word

MS Word 2007 Šablony programu MS Word MS Word 2007 Šablony programu MS Word Obsah kapitoly V této kapitole se seznámíme s: Možností využití šablon při vytváření nových dokumentů Vytvářením vlastních šablon Studijní cíle Po absolvování této

Více

Ukázka knihy z internetového knihkupectví www.kosmas.cz

Ukázka knihy z internetového knihkupectví www.kosmas.cz Ukázka knihy z internetového knihkupectví www.kosmas.cz U k á z k a k n i h y z i n t e r n e t o v é h o k n i h k u p e c t v í w w w. k o s m a s. c z, U I D : K O S 1 8 0 5 8 4 U k á z k a k n i h

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Funkční objekty v C++.

Funkční objekty v C++. Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Objektově orientované programování v jazyce Python

Objektově orientované programování v jazyce Python Objektově orientované programování v jazyce Python Co to je objektově orientované programování Python není přímo objektově orientovaný jazyk, ale podporuje nejdůležitější části objektově orientovaného

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

Objektově orientované programování v jazyce Python

Objektově orientované programování v jazyce Python Objektově orientované programování v jazyce Python Základní pojmy objektově orientovaného programování Objekt vychází z reálného světa. Má dva charakteristické rysy. Všechny objekty mají stav Všechny objekty

Více

MS OFFICE OUTLOOK 2010 - SEZNÁMENÍ

MS OFFICE OUTLOOK 2010 - SEZNÁMENÍ Škola: Autor: DUM: Vzdělávací obor: Tematický okruh: Téma: Masarykovo gymnázium Vsetín Mgr. Petr Koňařík MGV_VT_SS_1S2-D18_Z_OFF_OUT_UVOD.docx Informatika MS Office Outlook MS OFFICE OUTLOOK 2010 - SEZNÁMENÍ

Více

15. Projekt Kalkulačka

15. Projekt Kalkulačka Projekt Kalkulačka strana 143 15. Projekt Kalkulačka 15.1. Základní popis, zadání úkolu Pracujeme na projektu Kalkulačka, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

[BAL-MLP] Multiplayer

[BAL-MLP] Multiplayer České vysoké učení technické v Praze Fakulta elektrotechnická Semestrální práce D2 předmětu A7B39PDA [BAL-MLP] Multiplayer Tomáš Kozák (další členové týmu: Tomáš Bruštík, Jaroslav Havelík) LS 2012/2013

Více

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE profesionální verze 1 Obsah Požadavky... 3 Instalace... 3 Proměnná CLASSPATH... 3 Zpřístupnění licenčního klíče... 3 Ověřování komponent OKS. 3 Spouštíme aplikaci

Více

19. Projekt Adventura

19. Projekt Adventura Projekt Adventura strana 189 19. Projekt Adventura 19.1. Základní popis, zadání úkolu Pracujeme na projektu Adventura, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy Hra.

Více

návrhový vzor Singleton.

návrhový vzor Singleton. KAPITOLA 2 Návrhový vzor Singleton Jazyk PHP 5 vám pomocí klíčových slov public, protected a private umožňuje kontrolovat, kdo získá přístup k určitým atributům a metodám třídy. Dále vám jazyk PHP 5 umožňuje

Více

Práce se styly 1. Styl

Práce se styly 1. Styl Práce se styly 1. Styl Styl se používá, pokud chceme, aby dokument měl jednotný vzhled odstavců. Můžeme si nadefinovat styly pro různé úrovně nadpisů, jednotlivé popisy, charakteristiky a další odstavce.

Více

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

Projekty pro výuku programování v jazyce Java JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil

Více

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní

Více

Multimediální prezentace MS PowerPoint I

Multimediální prezentace MS PowerPoint I Multimediální prezentace MS PowerPoint I Informatika Multimediální prezentace zažívají v poslední době obrovský rozmach. Jsou používány například k reklamním účelům, k předvedení výrobků či služeb. Velmi

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

45 Plánovací kalendář

45 Plánovací kalendář 45 Plánovací kalendář Modul Správa majetku slouží ke tvorbě obecných ročních plánů činností organizace. V rámci plánu je třeba definovat oblasti činností, tj. oblasti, ve kterých je možné plánovat. Každá

Více

ipodatelna Uživatelská příručka

ipodatelna Uživatelská příručka Uživatelská příručka 1 Obsah Obsah 1 I Úvod 2 II Práce s aplikací 3 III Podání 4 1 Nové podání... 5 IV Informace o Uživateli 11 V Podatelna 13 1 Přijmout... a odmítnout podání 13 2 Seznam... došlých podání

Více

Programování v jazyce VISUAL BASIC.NET

Programování v jazyce VISUAL BASIC.NET GYMNÁZIUM ŠTERNBERK Programování v jazyce VISUAL BASIC.NET JAROSLAV ZAVADIL 1. ČÁST ŠTERNBERK 2009 1 / 51 1. kapitola Úvod V následujících kapitolách se seznámíme s ukázkou programování ve vyšším programovacím

Více

ABC Linux běží z CD české prostředí tištěná příručka obsah portálu www.abclinuxu.cz. Mutt Jak začít? Jan Fuchs

ABC Linux běží z CD české prostředí tištěná příručka obsah portálu www.abclinuxu.cz. Mutt Jak začít? Jan Fuchs Mutt Jak začít? Jan Fuchs Ještě než začnu vás chci upozornit, že to, co píši, je můj názor a nikomu nebráním v tom, aby ho měl odlišný. A proto vás žádám, abyste nezačali zbytečnou slovní válku o tom,

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

Základy HTML. Autor: Palito

Základy HTML. Autor: Palito Základy HTML Autor: Palito Zobrazení zdrojového kódu Zobrazení zdrojového kódu Každá stránka je na disku nebo na serveru uložena ve formě zdrojového kódu. Ten kód je psaný v jazyce HTML. Když si chcete

Více

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 12. Virtuální sítě (VLAN) Studijní cíl Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 1 hodina VLAN Virtuální síť bývá definována jako logický segment LAN, který spojuje koncové uzly, které

Více

1 Tabulky Příklad 3 Access 2010

1 Tabulky Příklad 3 Access 2010 TÉMA: Vytvoření tabulky v návrhovém zobrazení Pro společnost Naše zahrada je třeba vytvořit databázi pro evidenci objednávek o konkrétní struktuře tabulek. Do databáze je potřeba ještě přidat tabulku Platby,

Více

Manuál pro studenty. Obsah

Manuál pro studenty. Obsah Manuál pro studenty Studovat můžete v čase, který Vám vyhovuje a z jakéhokoliv prostředí. Náklady na cestovné a ubytování tímto ušetříte! Kurz Vás nebude nic stát! Počet kurzů bude záviset jen na Vás.

Více

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly. Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?

Více

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

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 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 1 Úvod 1.1 Anotace Česky Mým cílem bylo vytvořit ročníkovou práci z

Více

Microsoft Word základní

Microsoft Word základní Časový rozsah: 2 dny (8:30-14:00) Cena: 2400 Kč + DPH Microsoft Word základní Tvorba kratších dokumentů se zaměřením na korespondenci. Základy tvorby a formátování písma a odstavců. Vkládání tabulek a

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

K práci je možné přistoupit následujícím způsobem. Odkaz na práci se nachází na osobním webu autora práce: http://stpr.cz/.

K práci je možné přistoupit následujícím způsobem. Odkaz na práci se nachází na osobním webu autora práce: http://stpr.cz/. 2. Seznámení K práci je možné přistoupit následujícím způsobem. Odkaz na práci se nachází na osobním webu autora práce: http://stpr.cz/. 2.1. Uživatel (učitel) Uživatelem (učitelem) se myslí osoba, která

Více

Prozkoumání příkazů na pásu karet Každá karta na pásu karet obsahuje skupiny a každá skupina obsahuje sadu souvisejících příkazů.

Prozkoumání příkazů na pásu karet Každá karta na pásu karet obsahuje skupiny a každá skupina obsahuje sadu souvisejících příkazů. Úvodní příručka Microsoft Excel 2013 vypadá jinak než ve starších verzích, proto jsme vytvořili tuto příručku, která vám pomůže se s ním rychle seznámit. Přidání příkazů na panel nástrojů Rychlý přístup

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

PŘÍRUČKA PRÁCE SE SYSTÉMEM SLMS CLASS pro učitele

PŘÍRUČKA PRÁCE SE SYSTÉMEM SLMS CLASS pro učitele PŘÍRUČKA PRÁCE SE SYSTÉMEM SLMS CLASS pro učitele Vypracoval : Pavel Žemba Obsah Tvorba vlastních testů... 3 Postup tvorby... 3 Test otázky odpovědi... 3 Zadání otázek testu... 5 Test - cvičení na souboru,

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

První kapitola úvod do problematiky

První kapitola úvod do problematiky První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

Kaskádové styly základy grafiky

Kaskádové styly základy grafiky 1 Kaskádové styly základy grafiky Vymezení pojmů Historie Základy stylů 2 Co je to CSS? Vznik CSS a je možné zařadit přibližně do roku 1997. Pojem CSS by se dal shrnout definicí :"souhrn pravidel a metod

Více

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva;

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva; POKYNY KE STUDIU 1 Rozšiřující data na Internetu Pracovní materiály Doprovodné obrázky a videa na Internetu Rejstřík pojmů 7 SDÍLENÍ DAT Čas ke studiu: 1,5 hodiny Cíl: Po prostudování této kapitoly budete:

Více

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT Funkce Najít a nahradit slouží k rychlému vyhledávání určitých slov a jejich nahrazování jinými slovy. Lze hledat i určité varianty slov a nahrazovat je buď hromadně (všechny

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Google Apps. weby 1. verze 2012

Google Apps. weby 1. verze 2012 Google Apps weby verze 0 Obsah Obsah... Úvod... Zahájení práce... Nastavení webu... Úprava stránky... Popis prostředí... Rozložení stránky... Nadpis stránky... Úprava textu... Vložení odkazu... 8 Vložení

Více

emanuál Rozvoj ICT kompetencí žáků a pedagogů v oblasti zpracování grafiky a předtiskové přípravy pro studenty kurzu v LMS systému Moodle

emanuál Rozvoj ICT kompetencí žáků a pedagogů v oblasti zpracování grafiky a předtiskové přípravy pro studenty kurzu v LMS systému Moodle emanuál pro studenty kurzu Rozvoj ICT kompetencí žáků a pedagogů v oblasti zpracování grafiky a předtiskové přípravy v LMS systému Moodle CZ.1.07/1.1.22/02.0053 Obsah CO JE E-LEARNINGOVÝ E KURZ?.........

Více

UŽIVATELSKÁ PŘÍRUČKA UČITEL

UŽIVATELSKÁ PŘÍRUČKA UČITEL VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA UŽIVATELSKÁ PŘÍRUČKA UČITEL INFORMAČNÍ SYSTÉM PRO ZÁKLADNÍ ŠKOLU LOŠTICE Radek ZIMMERMANN Obsah 1 Úvod... 3 2 Přístup... 3 3 Přihlášení do systému... 4

Více

TEORIE ZPRACOVÁNÍ DAT

TEORIE ZPRACOVÁNÍ DAT Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky TEORIE ZPRACOVÁNÍ DAT pro kombinované a distanční studium Jana Šarmanová Ostrava 2003 Jana Šarmanová, 2003 Fakulta

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27. Základy programovaní 3 - Java Unit testy Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 26.,27. listopad, 2014 Petr Krajča (UP) Unit testy 26.,27. listopad, 2014 1 / 14 Testování zásadní

Více

www.dpd.cz/dobirky Uživatelský manuál

www.dpd.cz/dobirky Uživatelský manuál www.dpd.cz/dobirky Uživatelský manuál DPD CZ Obsah 1. Úvod... 3 2. Přihlášení... 3 Přihlášení... 3 Nový uživatel, zapomenuté heslo... 5 3. Nastavení... 6 Nastavení uživatele... 6 Nastavení bankovních účtů...

Více

Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka

Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka Projekt Využití ICT ve výuce na gymnáziích, registrační číslo projektu CZ.1.07/1.1.07/02.0030 MS Power Point Metodický

Více

Omezení funkcionalit v softwaru STATISTICA

Omezení funkcionalit v softwaru STATISTICA StatSoft Omezení funkcionalit v softwaru STATISTICA Věděli jste, že v softwaru STATISTICA si lze omezit jednotlivé nabídky? Pojďme se nyní podívat na pokročilejší úpravy softwaru, které mohou být v určitých

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

Projekt Obrázek strana 135

Projekt Obrázek strana 135 Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy

Více

Instalace produktu Ontopia. ver. 5.0.2 (open-source verze)

Instalace produktu Ontopia. ver. 5.0.2 (open-source verze) Instalace produktu Ontopia ver. 5.0.2 (open-source verze) Martina Husáková 1.2.2010 PÁR SLOV ÚVODEM Produkt společnosti Bouvet Ontopia (dříve Ontopia Knowledge Suite OKS) je jedním z nejpoužívanějších

Více

umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora

umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www:

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Obsahy kurzů MS Office

Obsahy kurzů MS Office Obsahy kurzů MS Office V současné době probíhají kurzy MS Office 2010 s následující osnovou: 1. Základy práce na PC, MS Office - praktické užití Kurz je určen pro všechny, kteří mají s prací na PC minimální

Více

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KLÍČOVÉ POJMY textové editory formát textu tabulka grafické objekty odrážky a číslování odstavec CÍLE KAPITOLY Pracovat s textovými dokumenty a ukládat je v souborech různého

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Pomůcka/manuál pro redakční systém http://helpdesk.remax-czech.cz verze 1.0

Pomůcka/manuál pro redakční systém http://helpdesk.remax-czech.cz verze 1.0 Pomůcka/manuál pro redakční systém http://helpdesk.remax-czech.cz verze 1.0 Přihlášení do systému Na adrese http://helpdesk.remax-czech.cz, viz. obr., vyplněním příslušného uživatelského jména a hesla.

Více

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28. Zdokonalování gramotnosti v oblasti ICT Kurz MS Excel kurz 6 1 Obsah Kontingenční tabulky... 3 Zdroj dat... 3 Příprava dat... 3 Vytvoření kontingenční tabulky... 3 Možnosti v poli Hodnoty... 7 Aktualizace

Více

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu: Plán předmětu Název předmětu: Algoritmizace a programování (PAAPK) Školní rok: 2007/2008 Forma studia: Kombinovaná Studijní obory: DP, DI, PSDPI, OŽPD Ročník: I Semestr: II. (letní) Typ předmětu: povinný

Více

17. Projekt Trojúhelníky

17. Projekt Trojúhelníky Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským

Více

[RDM] STRUČNÁ UŽIVATELSKÁ PŘÍRUČKA. CENTRÁLNÍ REGISTR PODPOR MALÉHO ROZSAHU - de minimis

[RDM] STRUČNÁ UŽIVATELSKÁ PŘÍRUČKA. CENTRÁLNÍ REGISTR PODPOR MALÉHO ROZSAHU - de minimis PDS s.r.o. Viniční 20, 615 00 Brno IČ: 25523121, DIČ: CZ25523121 [RDM] CENTRÁLNÍ REGISTR PODPOR MALÉHO ROZSAHU - de minimis STRUČNÁ UŽIVATELSKÁ PŘÍRUČKA Praha, Brno 2009, 2010 Verze dokumentu Verze Datum

Více

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec StatSoft Vzorce Jistě se Vám již stalo, že data, která máte přímo k dispozici, sama o sobě nestačí potřebujete je nějak upravit, vypočítat z nich nějaké další proměnné, provést nějaké transformace, Jinak

Více

Office 2013. podrobný průvodce. Tomáš Šimek

Office 2013. podrobný průvodce. Tomáš Šimek Office 2013 podrobný průvodce Tomáš Šimek Seznámení se společnými postupy při práci s dokumenty Office Popis základních a pokročilejších postupů při práci s Wordem, Excelem, PowerPointem a OneNote Možnosti

Více

LMS Moodle příručka učitele

LMS Moodle příručka učitele LMS Moodle příručka učitele Stručná příručka pro orientaci v LMS Moodle Realizováno v rámci OP VK: rozvoj studijních programů, didaktických metod a inovování modelu řízení v oblasti kombinovaného studia,

Více

Evidence požadavků uživatelů bytů a nebytových prostor

Evidence požadavků uživatelů bytů a nebytových prostor Evidence požadavků uživatelů bytů a nebytových prostor Úvod Pro zjednodušení a zprůhlednění Vaší komunikace se správní firmou (dále jen SF ), která má na starost objekt, v němž se nachází bytový či nebytový

Více

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013 Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521

Více

Access Tabulka letní semestr 2013

Access Tabulka letní semestr 2013 MS Access Tabulka letní semestr 2013 Tvorba nové tabulky importem dat propojením externího souboru pomocí Průvodce v návrhovém zobrazení Návrh struktury tabulky Tabulka záznam pole záznamu Jmeno RodCislo

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1.

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM Manuál pro editaci ŽS Verze 1.0 2012 AutoCont CZ a.s. Veškerá práva vyhrazena. Tento dokument

Více

Aplikační úrovně GRI 2000-2006 GRI. Verze 3.0

Aplikační úrovně GRI 2000-2006 GRI. Verze 3.0 Verze 3.0 Stručný přehled Tvůrci zprávy o udržitelném rozvoji by měli uvést, do jaké míry se při své práci řídili principy Reportingového rámce GRI. Tento údaj je vyjádřen systémem tzv. Aplikačních úrovní.

Více