2. Beadandó feladat dokumentáció

Hasonló dokumentumok
2. Beadandó feladat dokumentáció

3. Beadandó feladat dokumentáció

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Telepítési útmutató a SMART Notebook 10 SP1 szoftverhez

1. Beadandó feladat dokumentáció

Telepítési útmutató a SMART Notebook 10.6 oktatói szoftverhez

A program modelljéhez automatikusan futtatható egység-teszteket kell készíteni.

Elemi alkalmazások fejlesztése III.

Alapok (a K2D rendszer alapjai)

Telepítési útmutató a SMART Response 2009 szoftverhez

Thermo1 Graph. Felhasználói segédlet

Eseményvezérelt alkalmazások fejlesztése I 3. előadás. Dinamikus felületű alkalmazások. Giachetta Roberto

1. beadandó feladat: egyszerű grafikus felületű alkalmazás. Közös követelmények:

3. Beadandó feladat dokumentáció

Alkalmazott modul III 3. feladatcsoport. Közös követelmények:

Használati útmutató Szaktanácsadók számára NAK e-learning rendszerhez Bejelentkezés Moodle rendszerbe

3. Beadandó feladat dokumentáció

KÖNYVTÁRI KATALÓGUS HASZNÁLATI ÚTMUTATÓ

TERC V.I.P. hardverkulcs regisztráció

KUTATÁSTÁMOGATÁS SOROZAT. Felhasználói segédlet Academic Search Complete adatbázisban idézők kereséséhez

Elemi alkalmazások fejlesztése III.

MTMT adminisztrátori felület és teendők. Mátyás Melinda, Szabó Panna november 4. ELTE Egyetemi Könyvtár

MKOSZ Online Support - Felhasználói

A Canvas LMS új és régi felülete közti különbségek

Sú gó az ASIR/PA IR Públikús felú lethez

Hiteles Elektronikus Postafiók

Felhasználói kézikönyv - Android kliens

Felhasználói kézikönyv a WEB EDInet rendszer használatához

2. Beadandó feladat dokumentáció

KTI Közlekedéstudományi Intézet Nonprofit Kft. Vasúti Vizsgaközpont

ContractTray program Leírás

Használati útmutató Az online példatárhoz

Kézikönyv Kamat infosystem

Sygic: Voucher Edition for Android telepítése

Felhasználói útmutató

Tervezett fakitermelések bejelentése

ServiceTray program Leírás

DebitTray program Leírás

ONLINE SZAKÉRTŐI KERETRENDSZER

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész

Óranyilvántartás (NEPTUN)

Könyvtári nyilvántartás

Ugráló gomb oktatási segédlet Ugráló gomb

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

Fakitermelések ütemezése és dokumentálása

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató

Hiteles elektronikus postafiók Perkapu

Microsoft Office PowerPoint 2007 fájlműveletei

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

1. Origin telepítése. A telepítő első képernyőjén kattintson a Next gombra:

1) Szállítói számla kontírozásának megkezdését megelőző lépések a Tárgyi eszköz modulban

Alapként a Szabálykönyv szolgál és minden szabálypont illusztrált videoklipekkel, összekapcsolva a megfelelő szöveges állományokkal.

Hozzávalók keresése és csatolása

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

JOGI STÁTUSZ KEZELÉS MŰKÖDÉSE

MÁV-START Tudáspróba Felhasználói kéziköny

JLR EPC. Gyors kezdés útmutatója. Tartalom. Hungry Version 2.0. Lépésenkénti gyakorlati útmutató Képernyős útmutató

CIB Internet Bank asztali alkalmazás Hasznos tippek a telepítéshez és a használathoz Windows operációs rendszer esetén

Ismerkedés az új felülettel

Hiba bejelentés azonnal a helyszínről elvégezhető. Egységes bejelentési forma jön létre Követhető, dokumentált folyamat. Regisztráció.

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Új Nemzedék Központ. EFOP pályázatok online beszámoló felülete. Felhasználói útmutató

Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán

Motorizált infravörös vonali füstérzékelő. Kiegészítő információ

Eseményvezérelt alkalmazások fejlesztése I 7. előadás. Összetett grafikus felületű alkalmazások. Giachetta Roberto

Az alapértelmezett felhasználói név az "abc", a jelszó pedig "123". Ez célszerű megváltoztatni a felhasználónevet és a jelszót az első használat.

Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

1) A Bér jellegű kifizetési tételek kontírozásához szükséges előfeltételek

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Új jelszó beállítása. Új jelszó beállítása az IFA rendszerhez. BIZALMAS INFORMÁCIÓ JET-SOL JET-SOL 2.0 verzió

Dinamikus felületű alkalmazások. Stílusok, időzítő, képek

eszemélyi Kliens Szoftvercsomag Telepítési Útmutató

Szaftex I. Felhasználói kézikönyv 1.0 Szakdolgozók részére

A Vonallánc készlet parancsai lehetővé teszik vonalláncok és sokszögek rajzolását.

Felhasználói Kézikönyv

ClicXoft programtálca Leírás

Erste Sorszámhúzó Felhasználói kézikönyv

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Alapvető beállítások elvégzése Normál nézet

Mio Technology Limited C510, C710. Gyors használati utasítás a Mio Map v3 programhoz. Magyar

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Katalógus menetvonalak foglalásának folyamata a KAPELLA rendszerben:

POSZEIDON dokumentáció (1.2)

Forgalom nyilvántartó program Kezelési útmutató

Felhasználói Kézikönyv

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

Pick Pack Pont kereső és boltválasztó alkalmazás

CAMLAND Beruházás-megfigyelő

Bérprogram és az abevjava kapcsolata

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba

eszemélyi Kliens Szoftvercsomag

Felhasználói kézikönyv

ELTE, Informatikai Kar december 12.

Tartalomjegyzék. 1. Belépés a vásárolt e-könyvek eléréséhez. 2. A könyvespolc. 3. Az olvasó nézet

Az ErdaGIS térinformatikai keretrendszer

2. Beadandó feladat dokumentáció

Ablak és ablakműveletek

Fundamenta ebanking. Felhasználói útmutató

DSL kapcsolat létrehozása Windows 2000 alatt RasPPPoE tárcsázó segítségével

Átírás:

2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző képet tartalmaznak véletlenszerűen elhelyezve, amelyeket csak kijelölésre fednek fel. Továbbá egy külön mezőben 2 másodpercenként folyamatosan felvillan egy új kép. A játékos feladata, hogy a felvillanó kép helyét kijelölje a játéktáblán. A táblán történő kijelöléssel a kép felfedi magát, de csak addig, amíg nem történik a következő képváltás. A játékos három táblaméret közül választhat (4, 8, 16), majd még a játék kezdete előtt másodpercig betekintést nyerhet az összes képbe, ekkor kell memorizálnia azok elhelyezkedését. A játék célja, hogy a 30 másodperces játékidő alatt minél több jó találata legyen, ehhez a program számolja a jó, illetve rossz találatokat. A hátralévő időt folyamatosan láthatjuk a képernyőn. Legyen lehetőség a játék szüneteltetésére. Elemzés: A játékot egy grafikus felületen jelenítjük meg, ahol nyomógombokat használhat a felhasználó. Három nyomógombbal szabályozhatja a táblaméretet (az ablak tetején), és egyben új játékot is kezdhet. Egy negyedik nyomógomb felel a játék szüneteltetéséért és folytatásáért. Egy címke ( -as) mutatja az aktuálisan felvillantott képet az ablak közepén, további gombok pedig az egyes képeket, alapértelmezetten elrejtve. Ezen gombok mérete függ a számuktól is, mivel minden esetben egy sorba helyezzük a gombokat. A felületen ezen felül elhelyezünk egy címkét a képernyő tetején, amely folyamatosan jelzi a hátralévő időt. A játék végén egy előugró ablakkal jelezzük a játékos teljesítményét. A képeket, mint erőforrásokat (images.qrc) csatoljuk a projekthez, és az images könyvtárból töltjük be, <sorszám>.png formátumban, ahol a sorszám 1- től 16-ig terjed. Kisebb táblaméret esetén a program az első megadott számú képet tölti be a programba. 1

Használati esetek: Új játék (4/8/16) «invokes» Képváltás Felhasználó Mező felfedése «precedes» Felhasználói eset Leírás az alkalmazás telepítve van alkalmazás indítása 1 Alkalmazás indítása - megjelennek a kártyák n=4 beállítással (egy adott ideig felfedik a képüket, majd a hátukat mutatják), - új játék elindul (az eltelt idő 30 másodperc, a jó és rossz találatok száma nulla), majd - a játék folyik (2 másodpercenként valamelyik véletlenszerűen kiválasztott kártya képe jelenik meg és lehet a kártyákra kattintani) 2 Kilépés 3 Mező felfedése játék felület ablakának lezáró ikonjára kattintunk alkalmazás befejezése a játék folyik egy kártyára kattintunk - a kiválasztott kártya 2 másodpercre felfedi magát - ha a kiválasztott kártya azonos az éppen mutatott kártyával, akkor a jó találatok száma, különben a rossz találatok száma nő eggyel a szünet/folytatás gomb megnyomása 4 Szüneteltetés /Folytatás - ha a játék folyt, akkor a játék felfüggesztődik, nem folyik tovább (nem jelenik meg 2 másodpercenként valamelyik véletlenszerűen kiválasztott kártya képe, nem lehet kártyát kattintással felfedni) - ha a játék szünetelt, akkor a játék tovább folyik úgy, hogy az eddig eltelt idő és a pontok száma nem törlődik 5 Méretváltoztatás a méretváltozás előidéző gombok valamelyikére kattint - a kiválasztott gombnak megfelelő (n) beállítással megjelennek a kártyák - új játék elindul, majd a játék folyik 2

Tervezés: A program szerkezetét két rétegre bontjuk a modell/nézet architektúrának megfelelően. A modell eseményeken keresztül kommunikált a nézettel. A modellt a GameManager osztály valósítja meg, amely a játéklogikát biztosítja. Az eseménykezelés megvalósítása érdekében az osztályt a QObject-ből származtatjuk. A játékot egy időzítő vezérli (_timer), amely számlálók (_previewtime, _gametime) segítségével követi a megtekintési, illetve a játékidőt. A külső hozzáférést három eseménykezelő (newgame(<méret>), pausegame(), stepgame(<sorszám>)) biztosítja. Három eseménye a képváltás (imagechanged(<kép>)), a játék vége (gameover(<jó pontok>, <rossz pontok>)), illetve az üzenetváltás (messagechanged(<üzenet>)), amelyek paraméterek segítségével adják meg a módosításokat. A képeket egy vektorban tároljuk (_images). Játék kezdetekor generálunk le ügyelve arra, hogy minden kép csak egyszer szerepeljen. Ehhez permutáljuk a képek sorszámát. A megjelenítést a GameWindow biztosítja, amely a QWidget leszármazottja. A megjelenítéshez egyfelől QPushButton példányokat használunk, amelyre ikonként (QIcon) helyezzük fel a képeket, másfelől a középső helyre egy címkét helyezünk fel (_mainimagelabel), amelyre szintén beállítjuk a képi tartalmat (QPixmap). A gombokat elrendezéssel (_imagelayout) helyezzük el az ablakban. Ezen felül a felületen helyezünk el négy gombot (_smallgamebutton, _middlegamebutton, _largegamebutton, _pausebutton), amellyel a különböző nehézségű játékokat tudjuk elindítani, illetve szüneteltetni tudunk Lekezeljük a játéklogika két eseményét (gamemanager_gameover, gamemanager_imagechanged), valamint a táblára történő kattintást (buttonclicked), illetve az új játékra történő kattintást (startnewgame). 3

Osztályszerkezet: GameManager QObject - _number :int - _gametime :int - _previewtime :int - _hasshownimage :bool - _goodguesscount :int - _badguesscount :int - _gamelength :int {readonly} - _timer :QTimer* - _images :QVector<QPixmap> - _currentimageindex :int + GameManager(int) + ~GameManager() + canplay() :bool {query} + getimage(int) :QPixmap& {query} «slot» + newgame(int) :void + pausegame() :void + stepgame(int) :void + timertimeout() :void «signal» + messagechanged(qstring) :void + imagechanged(qpixmap&) :void + gameover(int, int) :void -gamemanager GameWindow QWidget - _gamemanager :GameManager* - _smallgamebutton :QPushButton* - _middlegamebutton :QPushButton* - _largegamebutton :QPushButton* - _pausebutton :QPushButton* - _messagelabel :QLabel* - _mainimagelabel :QLabel* - _imagebuttons :QVector<QPushButton*> - _imagelayout :QHBoxLayout* + GameWindow(QWidget*) + ~GameWindow() + gamemanager_imagechanged(qpixmap) :void + gamemanager_gameover(int, int) :void «slot» + startnewgame() :void + buttonclicked() :void Állapot diagram: 4

Végfelhasználói tesztesetek: 1a 1b Teszt eset Alkalmazás indítás hatása nem létező erőforrások Elvárt hatás - megjelennek a kártyák n=4 beállítással (egy adott ideig felfedik a képüket, majd a hátukat mutatják), - új játék elindul (az eltelt idő 30 másodperc, a jó és rossz találatok száma nulla), majd - a játék folyik (2 másodpercenként valamelyik véletlenszerűen kiválasztott kártya képe jelenik meg és lehet a kártyákra kattintani) HIBA jelzés 1c több erőforrás nincs hiba jelenség 1d kevesebb erőforrás HIBA jelzés, ha n=k esetén a képekből kevesebb van, mint k 2a Kilépés folyó játékból alkalmazás leáll 2b Kilépés szüneteltetett játékból alkalmazás leáll 3a Jó mező felfedése kiválasztott kártya megegyezik az éppen mutatott képpel, és a jó találatok száma nő. 3b 4a 4b Rossz mező felfedése Szüneteltetés Folytatás kiválasztott kártya nem egyezik meg az éppen mutatott képpel, és a rossz találatok száma nő. folyamatban levő játék megszakítható: a pontszámok és a hátralevő idő továbbra is látható, és a hátralevő idő áll, de nem jelenik meg 2 másodpercenként valamelyik véletlenszerűen kiválasztott kártya képe szüneteltetett játék folytatása: újra 2 másodpercenként valamelyik véletlenszerűen kiválasztott kártya képe jelenik meg, az eltelt idő csökkent 5a 5b Méretváltoztatás következménye Méretváltoztatás megjelenítése szüneteltetett játék illetve folyó játék esetén egyaránt új kártyák jelennek meg és új játék indul el különféle esetek kipróbálása a méret (n) változtatásra: méret változatlan: 4 4, 8 8, 16 16, méret nő: 4 8, 4 8, 8 16 méret csökken: 16 8, 16 4, 8 4 5