Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vecerek/bludisko
Repository meant for a team project to course IJA.
https://github.com/vecerek/bludisko
Last synced: about 1 month ago
JSON representation
Repository meant for a team project to course IJA.
- Host: GitHub
- URL: https://github.com/vecerek/bludisko
- Owner: vecerek
- Created: 2014-04-02T17:07:10.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2017-05-04T06:40:41.000Z (over 7 years ago)
- Last Synced: 2024-10-08T23:15:58.755Z (about 1 month ago)
- Language: Java
- Homepage:
- Size: 3.62 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
bludisko
================
Projekt do IJA.Zadání: Navrhněte a implementujte aplikaci Bludiště.
Specifikace bludiště:
- bludiště je rozděleno na políčka
- každé políčko má stejný rozměr
- velikost bludiště se udává v počtu políček ve formátu RxC, kde R je počet řádků a C je počet políček v řádku (např. 30x25 znamená 30 řádků a 25 sloupců)
- minimální rozměr je 20x20, maximální rozměr 50x50
- v bludišti jsou umístěny objekty, každý objekt je vždy umístěn na jedno políčko; objekty se dělí do kategorií:
- stavební objekty bludiště
- hráč
- hlídač- v bludišti jsou tyto základní typy stavebních objektů:
zeď - hráč nemůže projít
- brána - brána může být otevřená nebo zavřená; hráč může projít otevřenou bránou; zavřenou bránu může hráč otevřít klíčem, po použití klíč mizí a brána zůstává otevřená
- klíč - hráč může zvednout a schovat, při pokusu o průchod zavřenou bránou tuto bránu otevírá
- cíl - je pouze jeden v bludišti; hráč musí dosáhnout cílového políčkaHráč:
- objekt pohybující se po bludišti; při startu je umístěn na některé z volných polí (můžete vyzkoušet různé strategie umisťování hráčů)
- je ovládán uživatelem, pohyb je řízen textovými příkazy:
- step - hráč udělá jeden krok dopředu (pokud je to možné); příkaz go je pak tvořen sekvencí příkazů step
- go - hráč jde rovně dokud nenarazí na jiný objekt (brána, zeď, klíč, jiný hráč)
- stop - zastaví pohyb hráče (pokud již stojí, neprovede nic)
- left - hráč se otočí doleva
- right - hráč se otočí doprava
- take - hráč vezme klíč (pokud je na políčku před ním)
- open - hráč otevře bránu klíčem (pokud stojí před bránou a má klíč)
- keys - vypíše počet klíčů aktuálně vlastněných hráčemHlídač:
- objekt, který se samostatně pohybuje po bludišti
- pohyb je generován náhodně, hlídač se může na několik okamžiků zastavit
- pokud hlídač narazí na hráče, zabije ho
- hlídačů může být vícSpecifikace požadavků:
- aplikace je typu klient - server
Klient:
- implementuje rozhraní k hernímu serveru, umožňuje zadávat příkazy a zobrazuje aktuální stav hry
- jeden klient umožňuje pracovat s jedním uživatelem (hráčem)
- klient obsahuje grafické uživatelské rozhraní (GUI)
- GUI obsahuje zejména menu, hrací desku a prostor pro zápis příkazů a zobrazení informací
- graficky musí být jasně odlišitelná pole, stavební objekty, hráči a hlídačiServer:
- obsahuje úložiště bludišť; bludiště je uloženo v souboru v textové podobě a je identifikováno svým názvem
- obsahuje herní logiku, zpracovává události od klientů a rozesílá změny stavu hry připojeným klientůmHra:
- klient se připojuje na server, kde jsou uložena bludiště
- server nabízí seznam uložených bludišť a seznam rozehraných her
- klient buď zakládá novou hru (výběrem bludiště) nebo se může připojit k již rozehrané hře
- autentizaci a autorizaci uživatelů není třeba řešit - při prvním kontaktu klienta se serverem se mu přidělí unikátní - - název/kód/číslo, kterým se poté klient identifikuje
- klient vždy ovládá pouze svého hráče, stav bludiště a ostatních hráčů se mu pouze zobrazuje
- při vytvoření hry nebo připojení k existující hře se hráči přidělí unikátní barva (v rámci hry) a umístí se na volné pole (můžete vyzkoušet různé strategie umisťování hráčů)
- počet hráčů v jedné hře je omezen na 4
- souvislý pohyb hráče (po příkazu go) je omezen časovou prodlevou mezi kroky
- při každém kroku obsadí volné políčko před sebou a vyčká na uplynutí prodlevy
- prodlevu je možné nastavovat v rozmezí 0,5 s až 5 s, nastavuje vždy zakladatel hry
- stejná prodleva se uplatní i při souvislém pohybu hlídačů
- aplikace poskytuje zpětnou vazbu (v podobě textové informace) o sledovaných událostech; sledovaná událost je
- výsledek požadované operace (provedena/nelze provést); týká se pouze vlastního hráče
- kolize hráče s jiným objektem s následným zabitím hráče (týká se všech)
- hra končí dosažením cíle jedním z hráčů nebo zabitím všech hráčů
- po ukončení hry zobrazuje klient stav hry
- najetím myši na hráče je možné zobrazit informace o počtu kroků hráče (kolika políčky hráč prošel), času stráveném ve hře a celkovém času hry
- informace s průběhem hry (úspěšnost provedení příkazů a zabití hráčů) zůstávají zobrazeny
- můžete zvážit zabíjení hráčů navzájem (podobně jako hlídač)Součást odevzdání:
připravte alespoň tři bludiště uložená na straně serveruMinimum pro získání zápočtu:
návrh a implementace všech základních požadavkůDoporučení:
zamyslete se nad použitím vhodných návrhových vzorů