3. Beadandó feladat dokumentáció

Hasonló dokumentumok
Eseményvezérelt alkalmazások fejlesztése I 8. előadás. Általános szoftver architektúrák. Giachetta Roberto

Általános szoftver architektúrák

Eseményvezérelt alkalmazások fejlesztése I 12. előadás. Összetett szoftver architektúrák. Giachetta Roberto

2. Beadandó feladat dokumentáció

2. Beadandó feladat dokumentáció

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

Eseményvezérelt alkalmazások fejlesztése I 5. előadás. Grafikus felületű alkalmazások architektúrája

Modell megvalósítása. Gregorics Tibor: Eseményvezérelt alkalmazások fejlesztése I.

1. Beadandó feladat dokumentáció

3. Beadandó feladat dokumentáció

Eseményvezérelt alkalmazások fejlesztése I 5. előadás. Grafikus felületű alkalmazások architektúrája. Grafikus felületű alkalmazások architektúrája

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

ELTE, Informatikai Kar december 12.

2. Beadandó feladat dokumentáció

2. Beadandó feladat dokumentáció

Eseményvezérelt alkalmazások fejlesztése II 4. előadás. Windows Forms alkalmazások architektúrája és tesztelése. Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Giachetta Roberto

Jelentkezési lap képző szervek részére

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

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

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

Microsoft Office PowerPoint 2007 fájlműveletei

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

Tárgyfelvétel előtti órarendi nézet (órarend tervező) a Neptun HWEB-en

Szoftvertechnológia 7. előadás. Objektumorientált tervezés: végrehajtás. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Választó lekérdezés létrehozása

3. beadandó feladat: háromrétegű grafikus felületű alkalmazás. Közös követelmények:

Felhasználói segédlet a Scopus adatbázis használatához

Felhasználói segédlet a PubMed adatbázis használatához. Publikációk keresése, letöltése valamint importja

Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Cserép Máté

1. Az Access 2000 indítása után válasszuk az Üres adatbázis létrehozása pontot,

Védőnői jelentés összesítője modul. eform Felhasználói kézikönyv

Szoftvertechnológia 6. előadás. Objektumorientált tervezés: állapotkezelés. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Thermo1 Graph. Felhasználói segédlet

PwC EKAER Tool felhasználói leírás május

A számítógépes adatgyűjtő program használata

S Z E K S Z Á R D T É R I N F O R M A T I K A I R E N D S Z E R

Óranyilvántartás (NEPTUN)

Forrás és idéző közlemények felvitele importtal

DEHNsupport Toolbox - Kockázatelemzés Régi projektek megnyitása + mentés DEHN + SÖHNE / protected by ISO 16016

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Készítsen egy adatbázist (egytáblásat) egy számítástechnikai tanfolyam résztvevőiről. Az adattábla rögzítse a következőket:

Hiteles elektronikus postafiók Perkapu

Ismerkedés az új felülettel

Útmutató. Amennyiben a vállalkozás rendelkezik ügyfélkapu hozzáféréssel a KÜJ és KTJ számok igénylése a következők szerint történik:

Belépés Budapest, Ady Endre utca

On-line képzési program nyilvántartás

C#---Access adatbáziskezelési gyakorlat

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

ONLINE SZAKÉRTŐI KERETRENDSZER

Tanrend jelentő képző szervek részére

CitiDirect BE SM Felhasználói útmutató

MKOSZ Online Support - Felhasználói

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

Geotechnika II. (NGB-SE005-2) Geo5 használat

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).

Programozási technológia

WIN-TAX programrendszer frissítése

FELHASZNÁLÓI ÚTMUTATÓ

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

Műveletek makrókkal. Makró futtatása párbeszédpanelről. A Színezés makró futtatása a Makró párbeszédpanelről

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

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

Felhasználói leírás: STAHL Ex-Tool v1.0 rev

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

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

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

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

MAGYAR POSTA ZRT. ebérjegyzék. Felhasználói kézikönyv

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

Kézikönyv. Fizetési felszólítás létrehozása, szerkesztése és nyomtatása

EuroStat adatlekérdező

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

3. Beadandó feladat dokumentáció

Publikációk és idéző közlemények duplum vizsgálata és kezelése

Szoftvertechnológia 5. előadás. Objektumorientált tervezés: architektúra. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Technikai információk fejlesztőknek

Dokumentum létrehozása/módosítása a portálon:

POSZEIDON dokumentáció (1.2)

Aranykor Önkéntes Nyugdíjpénztár Partner Portál

A Novitax ügyviteli programrendszer első telepítése

EKOR. Felhasználó kézikönyv. Verzió: 1.2 Készítette: M Wallen Sofware Kft. Dátum:

Építésügyi Monitoring Rendszer (ÉMO) komplex működését biztosító településrendezési tervek digitalizálása EKOP /B kiemelt projekt megvalósítása

A FileZilla program beállítása az első belépés alkalmával

Közlemények kézi felvitele

PC Connect. Unique ewsletter. program leírás

Hungaropharma Zrt. WEB Áruház felhasználói útmutató. Tartalomjegyzék

E-ADÓ RENSZER HASZNÁLATI ÚTMUTATÓ

ivms-4200 kliensszoftver

Változás bejelentés / támogatási szerződésmódosítási kérelem beadása

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

POSZEIDON dokumentáció (4.2)

Hiteles Elektronikus Postafiók

QGIS Gyakorló. 1. kép. A vektor réteg (grassland.shp).

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció

Felhasználói segédlet a Scopus adatbázis használatához

Minőségellenőrzési kérdőív kitöltő program Felhasználói kézikönyv

Energiainformációs Adattár Adatgyűjtő alrendszer felhasználói dokumentáció

Szöveges fájlok szerkesztése Jegyzettömb használata

Meglévő munkafüzet megnyitása, mentése új néven

Átírás:

3. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a közismert Tic-Tac-Toe játékra. Ebben a játékban a játékosok egy -as játékmezőn helyeznek el, illetve szimbólumokat felváltva (először az kezd). A játék célja, hogy a játékos egy sorban, oszlopban, vagy átlósan kirakjon három saját szimbólumot egymás mellett, amiben a másik játékos igyekszik megakadályozni (miközben saját magának is próbálja kirakni a szomszédokat). Amennyiben kitöltik a teljes táblát, és senkinek sem lesz három szomszédos mező, a játék döntetlen lesz. A programban legyen lehetőség új játék kezdésére, az aktuális játék elmentésére, korábban elmentett játék betöltésére. A program írja ki, ha valamely játékos nyert, vagy döntetlen lett a játék, és utána automatikusan kezdődjön új kör. Elemzés: A játékot egy grafikus felületen jelenítjük meg, ahol 9 nyomógombot helyezünk el tábla gyanánt. A nyomógombhoz közös eseménykezelőt rendelünk, amely egérkattintás hatására megjeleníti az aktuális játékos szimbólumát a mezőn. Az aktuális játékost minden lépés után váltjuk. Amennyiben már van szimbólum a mezőn, akkor nem történik semmi (ehhez kikapcsoljuk a gombot a kattintás után). Az ablak tetején helyet kap egy Új játék gomb, amellyel bármikor új játékot kezdhetünk, így a felületen összesen 10 gomb helyezkedik el. A játék felületét tetszőlegesen méretezhetőre készítjük el, a -as minimális méret mellett, ehhez elrendezéseket használunk. A játék állását egy egészeket tartalmazó mátrixban tároljuk, ahol az üres mezők 0, az X játékos mezői 1-es, a O játékos mezői 2-es értéket kapnak. Alprogramokat készítünk az új játék kezdéséhez, léptetéséhez, az állás ellenőrzéséhez, valamint a játéktábla létrehozásához. lehetőséget adunk játékállás elmentésére (Ctrl+L) és betöltésére (Ctrl+S), ehhez a felhasználó 5 mentési hely közül választhat (egy külön ablakban) a mentést egyszerű szöveges fájlban végezzük (game1.sav,, game5.sav), elmentjük a lépésszámot, a soron következő játékost és a tábla állását 1

ehhez létrehozunk egy betöltésre és egy mentésre szolgáló ablakot (SaveGameWidget, LoadGameWidget), a modellt pedig kiegészítjük a műveletekkel (savegame, loadgame), valamint a játéklista lekérdezésével (savegamelist) 2

Használati esetek: Felhasználó Új játék Lépés Kilépés «include» Felhasználói eset Leírás 1 Alkalmazás indítása az alkalmazás telepítve van alkalmazás indítása 2 Kilépés 3 Lépés 4 Új játék 5 Mentés 6 Betöltés játék felület ablakának lezáró ikonjára kattintunk alkalmazás befejezése üres mezőre kattintás Attól függően, hogy ki a soron következő játékos egy X vagy O jel kerül a kiválasztott mezőre, majd annak ellenőrzésére kerül a sor, hogy nyert-e valaki, vagy döntetlen lett az eredmény. Mindkét esetben egy külön információs ablak jelenik meg a megfelelő üzenettel. CTRL-N CTRL-S egy külön ablakban lehet az aktuális elmenteni CTRL-L egy külön ablakban lehet egy elmentett állás betölteni 3

Tervezés: A program lényegi váza a TicTacToeWidget grafikus felület osztály, amely a játék felületét a buttontable: QVector<QVector<QPushButton>> mátrixban, míg magukat az értékeket a gametable: Int32[][] mátrixban tárolja. A lépések kezeléséért a stepcount: int, az aktuális játékos kezeléséért pedig a playernr: int mező felel. Az eseményvezérlőkön túl az új játék kezdését a newgame, a lépés végrehajtását a stepgame, a játékállás ellenőrzését pedig a checkgame metódusok hajtják végre. Architektúra: 4

Osztályszerkezet: Nézet: Modell: TicTacToeWidget QWidget - _stepnumber :int - _currentplayer :Player - _gametable :Player** TicTacToeModel -_model QObject -_loadgamewidget LoadGameWidget + LoadGameWidget(QWidget*) + okbutton_clicked() :void + TicTacToeModel() + ~TicTacToeModel() + newgame() :void + stepgame(int, int) :void + loadgame(int) :bool + savegame(int) :bool + savegamelist() :QVector<QString> {query} + stepnumber() :int {query} + currentplayer() :Player {query} + getfield(int, int) :Player {query} + gamewon(tictactoemodel::player) :void + gameover() :void + fieldchanged(int, int, TicTacToeModel::Player) :void - checkgame() :void -_savegamewidget SaveGameWidget # _okbutton :QPushButton* # _cancelbutton :QPushButton* # _listwidget :QListWidget* QDialog + SaveGameWidget(QWidget*) + setgamelist(qvector<qstring>) :void + selectedgame() :int {query} Perzisztencia: 5

Eseményvezérlés: gamewon: játékeredmény Forrás: Model objektuma: _model Feladata: Játék befejeződésének észlelése és a győztes (döntetlen) kijelzése gameover: játék vége Forrás: Model objektuma: _model Feladata: kilépés a játékból fieldchanged: játékmező állapotának változása Forrás: QPushButton objektuma: _largegamebutton Feladata: Attól függően, hogy ki a soron következő játékos egy X vagy O jel kerül a kiválasztott mezőre, majd annak ellenőrzésére kerül a sor, hogy nyert-e valaki, vagy döntetlen lett az eredmény. Mindkét esetben egy külön információs ablak jelenik meg a megfelelő üzenettel. clicked: játék mentést elfogadó gombra kattintás Forrás: QPushButton objektuma: _okbutton Feladata: elmenti az aktuális játékot clicked: játék betöltést elfogadó gombra kattintás Forrás: QPushButton objektuma: _okbutton Feladata: betölti a játékot, feltéve, hogy ki lett választva clicked: játék mentést illetve betöltést elutasító gombra kattintás Forrás: QPushButton objektuma: _cancelbutton Feladata: Elutasítja a játék mentését illetve betöltését Végfelhasználói tesztesetek: Teszt eset Elvárt hatás 1 Alkalmazás indítás hatása 2 Kilépés folyó játékból alkalmazás leáll 3a Váltakozó lépések az üres mezőkre kattintva váltakozva hol X, hol O jelenik meg a mezőn. 3b Nem üres mezőre kattintás nincs változás a táblán 6

3c 3d létrejött három azonos jel egy sorban egy oszlopban, egy átlóban győztes nélkül betelt a játéktábla mindhárom esetben a megfelelő játékos lesz győztesnek kihirdetve, az információs ablak lezárása után az információs ablakban a döntetlen felirat jelenik meg 4a új játék indítása egy folyamatban levő játéknál 4b új játék indítása egy befejeződött játéknál 5a mentés egy folyamatban levő játékról a játék állás elmentésre kerül, folytatni lehet a játékot 5b mentés egy befejeződött játékról a játék állás elmentésre kerül, új játékot lehet kezdeni 5c mentés elvetése változás nem történik 6a betöltés egy folyamatban levő játéknál az elmentett játék állás betöltődik, folytatni lehet a játékot 6b betöltés egy befejeződött játéknál az elmentett játék állás betöltődik, új játékot lehet kezdeni 6c betöltés, de kiválasztott játék nélkül figyelmeztető üzenetablak, de más változás nem történik 6d betöltés elvetése változás nem történik 7