Verze : 226 NS, odstavců, slov, znaků, bajtů. Adventura. Rudolf Pecinovský 2015
|
|
- Antonie Žáková
- před 8 lety
- Počet zobrazení:
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
OOP. Verze : 365 NS, odstavců, slov, znaků, bajtů. a Java 8
Verze 15.57.5745 2015-10-24: 365 NS, 8 253 odstavců, 89 019 slov, 657 239 znaků, 2 963 968 bajtů OOP a Java 8 Návrh a vývoj složitějšího projektu vyhovujícího zadanému rámci Rudolf Pecinovský 49R_Adventura_TXT_ZLOM.doc
VíceOOP. Verze : 365 NS, odstavců, slov, znaků, bajtů. a Java 8
Verze 15.58.5826 2015-11-21: 365 NS, 8 252 odstavců, 89 011 slov, 657 168 znaků, 2 924 032 bajtů OOP a Java 8 Návrh a vývoj složitějšího projektu vyhovujícího zadanému rámci Rudolf Pecinovský 49R_Adventura_TXT.doc
VíceMetodika. 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íceVaš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íce1. 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íceKolekce 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íceVýč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íce24-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íceIII/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íceGenerá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íce14.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íceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
VíceČÁ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íceIII/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íceAlgoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
VíceVyřešené teoretické otázky do OOP ( )
Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika
VíceMS Excel makra a VBA
Autor: RNDr. Obsah: MS Excel makra a VBA 1 Využití, ukázky, výhody a nevýhody... 2 2 Makra a zabezpečení... 2 2.1 Nastavení zabezpečení Excelu... 2 2.2 Uložení maker do sešitu a osobního sešitu maker...
VíceQuo vadis programování? Automatizace vyhodnocování studentských úloh
Vaše jistota na trhu IT Quo vadis programování? Automatizace vyhodnocování studentských úloh Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Vladimír Oraný vladimir.orany@gmail.com Vaše jistota na trhu IT Obsah
Více15. 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íceFunkč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íceBridge. 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íceVyuž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íceMS 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íceObsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
VícePolymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března
Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.
Více20. 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íceINSTALACE 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íceVývoj a ověřování metodiky výuky programování
Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 1 z 11 Vývoj a ověřování metodiky výuky programování Rudolf Pecinovský Informatika XXIX
Vícená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[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íceProgramová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íce1. 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íce11.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íceObsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth
Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
VíceUká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íce7 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íce19. 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íceIII/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íceProgramová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íceStatické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
VíceProjekty 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íce8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod 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 třídám a objektům, instančním
VícePREPROCESOR 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íceZá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Č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íceObjektově 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íceMultimediá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ícePrá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íceObjektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
VíceProgramová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íce6 Příkazy řízení toku
6 Příkazy řízení toku 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 pro řízení toku programu. Pro všechny tyto základní
Vícetypová 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íceDUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie
VíceVý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íceABC 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íceTematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných
Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro
VíceObjektově 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íceEvidence 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íceDSL 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íceZadání maturitní práce ve školním roce 2016/2017
Zadání maturitní práce ve školním roce 2016/2017 vydané podle 15 odst. 1 vyhlášky č. 177/2009 Sb., o bližších podmínkách ukončování vzdělávání ve středních školách maturitní zkouškou, ve znění pozdějších
VíceOffice 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íce11 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Č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íceVzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem
Vzorce Vzorce v Excelu lze zadávat dvěma způsoby. Buď známe přesný zápis vzorce a přímo ho do buňky napíšeme, nebo použijeme takzvaného průvodce při tvorbě vzorce (zejména u složitějších funkcí). Tvorba
VíceProzkoumá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ícePŘÍ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íceVÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VíceTento 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íceProgramování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového
VíceÚvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
VíceCvičení č. 3. Sdílené prostředky a synchronizace Program Banka. 4 body
Cvičení č. 3 Sdílené prostředky a synchronizace Program Banka 4 body Datum: 12.3.2008 1 Obsah 1. Úvod...2 2. Pokyny pro odevzdání...2 3. Příprava...2 4. Úlohy...3 4.1. Požadavky na program...3 4.2. Požadavky
VíceProgramovací jazyk Java
1 z 8 Programovací jazyk Java Enumerace (výčty) Složitější definice výčtového typu Konstanty anonymních typů Výčtový typ a datové struktury Java packaging JAR archivy CLASSPATH Apache Ant 10. přednáška
VíceIII/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ícePrvní 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íceKOMU JE KNIHA URČENA?
7 Kapitola 0. O této knížce KOMU JE KNIHA URČENA? Tuto učebnici jsem vytvářel na základě mých přednášek a úvodních kurzů na vysokých školách i ve firmě moderníprogramování. Většina mých studentů měla malou
VíceZáklady objektové orientace I. Únor 2010
Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných
VíceUkázka knihy z internetového knihkupectví
Ukázka knihy z internetového knihkupectví www.kosmas.cz Věnováno mé rodině ACCESS 2007 PODROBNÝ PRŮVODCE 5 Úvod... 13 Komu je tato kniha určena...13 Co v této knize naleznete...14 Použité konvence a struktura
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Více17. 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íceMQL4 COURSE. By Coders guru -8- Proměnné
MQL4 COURSE By Coders guru www.forex-tsd.com -8- Proměnné Vítejte v lekci proměnné mého MQL 4 kurzu. Doufám, že se vám předchozí lekce líbily a že jste připraveni na boj s proměnnými: Doporučuji, abyste
Více10 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ícePomů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ícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Více3. 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íceMS 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ícedokumentu, respektive oddílu (více o oddílech v další kapitole). Nemůžeme
Microsoft Office IV Sloupce Chtěli bychom psát školní noviny a máme pocit, že jsou málo profesionální. Chtěli bychom využít možnost psaní v několika sloupcích. Nastavíme si na stránce místo jednoho sloupce
VíceAccess 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íce2 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íceBM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, 69107 Němčičky u Břeclavi. Úvodní informace:
BM Software, Němčičky 84, 69107 Němčičky u Břeclavi Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů Tel: 519 430 765, Mobil: 608 447 546 e-mail: bmsoft@seznam.cz web: http://www.dochazka.eu
VíceKoncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
Více( ) ( ) Rozklad mnohočlenů na součin I (vytýkání) Předpoklady:
1.8.6 Rozklad mnohočlenů na součin I (vytýkání) Předpoklady: 010805 Pedagogická poznámka: Na začátku každé rozkládací hodiny jsou přidány příklady na opakování úprav mnohočlenů. Důvod je jediný, čtyři
VíceHledání správné cesty
Semestrální práce z předmětu A6M33AST Závěrečná zpráva Hledání správné cesty Nela Grimová, Lenka Houdková 2015/2016 1. Zadání Naším úkolem bylo vytvoření úlohy Hledání cesty, kterou by bylo možné použít
VíceTento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.
13 Rozhraní, výjimky 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 rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny
VícePř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íceIII/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íceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceNávod k práci s programem MMPI-2
Návod k práci s programem MMPI-2 Výchozím vstupním heslem je název programu psaný malými písmeny, tedy mmpi-2. Po zadání hesla stiskněte Enter nebo tlačítko Dále. Hlavní obrazovka programu zobrazuje přehled
Více45 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íceZá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