Debreceni Egyetem Informatika Kar. Kétszemélyes pókerjáték
|
|
|
- Kornél Barnabás Kelemen
- 10 évvel ezelőtt
- Látták:
Átírás
1 Debreceni Egyetem Informatika Kar Kétszemélyes pókerjáték Témavezető: Dr. Horváth Géza Egyetemi adjunktus Debrecen 2011 Készítette: Kocsi Zoltán Programtervező informatikus
2 Tartalomjegyzék TARTALOMJEGYZÉK... 2 BEVEZETÉS... 4 A PÓKER TÖRTÉNETE, SZABÁLYAI, LAPKOMBINÁCIÓK... 5 A póker rövid története... 5 A játékszabályok... 5 A Pot Limit Texas Hold'em póker... 5 A játék menete... 6 A leosztások értéke... 6 A PROGRAMMAL SZEMBENI FELHASZNÁLÓI KÖVETELMÉNYEK Regisztráció Belépés Regisztráció törlése Eredmények megtekintése Játék betöltése Új játék indítása Játék elmentése Egy új eredmény bejegyzése az eredmény táblába A PROGRAM ELMÉLETI FELÉPÍTÉSE SZAKDOLGOZATI PROGRAM GYAKORLATI MEGVALÓSÍTÁSA A program mögött lévő adatbázis User tábla Result tábla Saved_Game tábla A táblák között lévő kapcsolatok A program kliens oldalának megvalósítása Main osztály LoginHandler osztály WelcomeHandler osztály A DeleteRegistrationHandler osztály PlayGameHandler osztály A program szerver oldalának megvalósítása Persistance csomag Game csomag Message csomag Gson csomag Server csomag Eventhandling csomag Main csomag ÖSSZEGZÉS
3 KÖSZÖNETNYILVÁNÍTÁS IRODALOMJEGYZÉK INTERNETES FORRÁSOK PLÁGIUM - NYILATKOZAT
4 Bevezetés Szakdolgozatom célja megismerni és elsajátítani olyan technológiákat, melyek hasznosak lehetek a későbbi munkavégzésnél. Témaválasztásom oka, hogy napjainkban nagy népszerűségnek örvend ez a játék. Dolgozatomban be szeretném mutatni, hogy milyen módon lehet megvalósítani egy pókerjátékot a választott technológiákkal. A szakdolgozati program tervezéséhez, kivitelezéséhez több fejlesztői környezetet is használok. A MySQL Workbench 5.0-s verziójával az adatbázissémát terveztem meg, az Enterprises Architect 7.5-ös verziójával a use case, class, az activity és a component diagramokat készítettem el. A program kliens oldalát Adobe Flash Professional CS5 és Flash Develop programok segítségével valósítottam meg, míg a szerver oldalát Netbeans es verziószámú fejlesztői környezettel kiviteleztem. Fontosnak tartottam, hogy a program használjon adatbázistáblákat is, ezért lehetőség lesz regisztrációra, a játék mentésére, a játék betöltésére valamint az eredmények megtekintésére. 4
5 A póker története, szabályai, lapkombinációk A póker rövid története A játék eredetére vonatkozóan több teória is létezik. Nevét valószínűleg a francia poque nevű játék után kapta, amely alapjául egy nas elnevezésű perzsáktól átvett játék szolgálhatott. Ugyanakkor a póker szerkezete hasonlít a spanyol primero nevű játékra is. A póker tehát feltételezhetően több játék jegyeit is magába foglalja. A játék bár Európából és Ázsiából származtatható mégis Amerikát hódította meg leginkább. Nevada államban, New Orleansban az 1800-as évek elején kezdett elterjedni a játék, amit ekkor még 20 lappal játszottak, a játékosok pedig 3 lapot kaptak. Az osztást követően a szereplők arra licitáltak, hogy kinél vannak a legerősebb lapok. Később bővült a póker 52 laposra valamint bevezették a sort és a flusht. A játék egyre nagyobb népszerűségre tett szert, amíg illegális szerencsejátéknak nem minősítették ban ugyan legalizálták, de a kaszinótulajdonosok nem kedvelték, mert kevés bevételt hozott. Az igazi áttörést az 1970-ben induló World Series of Poker nevű bajnokság megrendezése hozta. A játék ettől kezdve lett igazán közkedvelt és több változata is született. A következő mérföldkövet az Internet jelentette, amellyel lehetővé vált az online játék ben jött létre az első online kaszinó, négy évvel később pedig Planet Poker néven az első online pókerterem. Mára már megszámlálhatatlanul sok pokersite szolgálja ki a játékosok igényeit. A játékszabályok Több pókerváltozat is létezik, ilyen például az Omaha, a Razz, a Seven Card Stud és a Texas Hold em. Ezen utóbbival fogalakozom részletesen, mivel szakdolgozatom fő témája egy Pot Limit Texas Hold em játék megtervezése és kivitelezése. A Pot Limit Texas Hold'em póker A játékot mindig egy pakli 52 lapos francia kártyával játsszák, ami négy színből áll. Treff (clubs), Káró (diamonds), Kör (hearts), Pikk (spades) és a lapok értéke Ász (Ace), Király (King), Dáma (Queen), Bubi (Jack), 10, 9, 8, 7, 6, 5, 4, 3 és 2. 5
6 A Pot Limit játék esetén a feltehető összeget a kezdő tétek nagysága, a körben az előző játékosok által feltett tétek nagysága és a játékos megmaradt zsetonjainak száma határozza meg. Maximum tét: a maximum tét vagy emelés, amelyet egy játékos megtehet az a pot összegével megegyező tét. A játék menete Minden játékos két lapot kap a kezébe, 5 lap pedig az asztal közepére kerül. A játékosok ebből a 7 lapból választják ki a számukra legjobb kombinációt adó 5 lapot. Az osztás előtt az osztótól balra ülő játékos beteszi a kis vak licitet (small blind), a következő pedig a nagy vak licitet (big blind). Az osztó ezután mindenkinek két lapot oszt. Először a big blind után ülő játékos licitálhat, aki eldobhatja (fold) a lapját, megadhatja (call) a tétet (bet), illetve emelhet (raise) is. A következő játékosoknak ugyanezek a lehetőségei. Az első licitkör után az osztó három lapot tesz középre (flop). Az osztás után a small blind kezdi a licitálást, aki passzolhat (check), illetve tétet rakhat be. Miután valaki emelte a tétet, a játékostárs(ak) a következőket teheti(k): bedobja a lapját,tarthatja a tétet, emelhet. A licitálás után az osztó leteszi a negyedik lapot (turn). Újra kezdődik a licitálás az előzőeknek megfelelően. A licit után jön az ötödik lap (river), amit egy újabb licitálás követ. A licitálások után a lapmutatás (showdown) következik. Az a játékos mutatja először a lapját, aki utoljára emelt. Az nyer, akinek a legerősebb lapkombinációja van. Döntetlen esetén el kell osztani az összegyűlt téteket. A másik lehetőség, hogy a játékos addig emeli a tétet, hogy mindenki más eldobja a lapjait, így anélkül nyerhet, hogy meg sem mutatja a kártyáit. A következő játék előtt az osztót jelölő buttont eggyel balra kell tenni, amihez igazítani kell a vakokat is. A leosztások értéke A nyerő lapkombinációk a legerősebbtől a leggyengébbig rangsorolva. 6
7 royal flush A legmagasabb leosztás a pókerben a Royal Flush: azonos színű A-K-Q-J-10. straight flush A színsor a második legmagasabb leosztás, mely öt egymást követő, azonos színű kártyalapból áll. four of a kind (poker) A póker a következő legmagasabb értékű leosztás. Négy azonos értékű kártyalapból és egy ötödik lapból áll, ami lehet bármilyen. full house Rangsorban a full következik, mely három plusz két megegyező értékű kártyalapból áll. 7
8 flush A flush azonos színű, de nem egymást követő öt kártyalapból áll. straight A sor öt tetszőleges színű, egymást követő lapból áll, melyben az ász lehet magas vagy alacsony értékű is. A sorhoz nem kell feltétlenül ász is, bármilyen öt egymást követő kártyalap elég. Minél nagyobb a legmagasabb lap, annál erősebb az értéke. three of a kind (trips) Három bármilyen azonos értékű kártyalap. two pair Két-két egyforma értékű kártyalapból, és egy ötödik kártyalapból áll, mely azokkal nem azonos értékű; a két pár közül a magasabb értékűvel hivatkoznak rá. 8
9 pair (one pair) Két megegyező értékű kártyalap, plusz három másik kártyalap, melyek az előző kettővel együtt nem hoznak létre semmilyen nagyobb értékű leosztást. Minél magasabb lapokból áll, annál nagyobb az értéke is. high card Ez a leggyengébb leosztás. A legmagasabb lap az ász, majd sorban a többi lap egészen a kettesig. Amikor két játékosnak megegyezik a legmagasabb lapja, akkor a soron következő dönt. 9
10 A programmal szembeni felhasználói követelmények A programnak tudnia kell kezelni bizonyos felhasználói interakciókat: - regisztráció - belépés - regisztráció törlése - eredmények megtekintése - elmentett játék betöltése - játék indítása - játék elmentése - befejezett játék eredményének eltárolása A programhoz tartozó use-case diagram: 1. sz. ábra 10
11 A felhasználó interakciói: Regisztráció 2. sz. ábra A kliens oldalon bevitelre kerül egy tetszőleges név és jelszó páros, melyet elküld a szervernek. A szerver oldalon végrehajtódik egy lekérdezés, hogy szerepel-e már az adott nevű felhasználó az adatbázisban. Amennyiben nem szerepel, úgy bekerül az adatbázisba a felhasználó az adott jelszóval. Ezt követően a szerver értesítést küld a kliensnek a sikeres regisztrációról, és egyúttal megtörténik a beléptetés is. Ha szerepel már adott nevű felhasználó, úgy a regisztráció sikertelennek mondható. Ekkor a kliens értesítést kap arról, hogy nem megfelelő felhasználónevet adott meg, ezután lehetősége lesz új név és jelszó páros megadására. 11
12 Belépés 3. sz. ábra A kliens oldalon bevitelre kerül egy név és jelszó páros, melyet elküld a szervernek. A szerver oldalon ez a név és jelszó ellenőrzésre kerül. Egy lekérdezés hajtódik végre, mely megvizsgálja, hogy szerepel-e adott nevű felhasználó az adatbázisban az adott jelszóval. Amennyiben a van ilyen felhasználó, úgy a belépés sikeresnek tekinthető, és erről egy üzenetet küld a szerver a kliensnek. Ha a lekérdezés azt eredményezi, hogy nem szerepel az adott nevű felhasználó az adott jelszóval az adatbázisban, úgy a belépés sikertelen, és erről a szerver értesíti a klienst, ezután lehetőség lesz újbóli név és jelszó páros megadásának. Regisztráció törlése A kliens oldalon bevitelre kerül egy név és jelszó páros, melyet átküld a szervernek. A szerver ezután végrehajt egy lekérdezést, mellyel ellenőrzi, hogy szerepel-e az adott nevű felhasználó az adatbázisban, és ha szerepel, akkor a hozzá tartozó jelszó megegyezik-e azzal a jelszóval, mely kliens oldalon bevitelre került. Amennyiben a lekérdezés azt eredményezi, hogy korrekt név és jelszó páros lett megadva, úgy az adott nevű felhasználót törli az adatbázisból, és értesítést küld a kliensnek a sikeres törlésről. A törlés végleges, és 12
13 nem visszavonható. Amennyiben helytelen név és jelszó páros lett megadva, úgy a semmilyen törlés nem megy végbe, ezáltal a regisztráció törlése sikertelennek tekinthető, melyről a szerver üzenetet küld a kliensnek. Ekkor lehetőség lesz újból megpróbálni a regisztráció törlését. 4. sz. ábra Eredmények megtekintése A kliens oldalon a felhasználó generál egy üzenetet, mely azt jelzi, hogy meg kívánja tekinteni az eddigi eredményeket. Ezt az üzenetet a kliens elküldi a szervernek. Mikor a szerverhez beérkezik ez az üzenet végrehajtódik egy lekérdezés az eredmények táblából, és ennek a lekérdezésnek az eredményét visszaküldi a kliensnek. A kliens dolga ezután megjeleníteni a beérkezett eredményeket. 13
14 5. sz. ábra Játék betöltése Kliens elküld egy üzenetet, melyben a felhasználó kéri a hozzá tartozó mentett játékok listáját. A szerver feldolgozza ezt az üzenet, végrehajt egy lekérdezést, mellyel lekérdezi az adott nevű játékos összes eddigi elmentett játékát. A lekérdezés eredményét pedig továbbítja a kliensnek. Ezután kliens oldalon megjelenik a felhasználóhoz tartozó mentett játékok listája. Amennyiben ez a lista nem üres, úgy a játékos választ egyet az általa elmentett játékok listájából, majd a kliens átküldi a szervernek a választott játék azonosítóját. Miután a szerver megkapta a kiválasztott azonosítót, betölti az adott játékot, és a játékos folytathatja tovább az általa korábban elmentett játékot. 14
15 6. sz. ábra Új játék indítása 7. sz. ábra 15
16 A kliens oldalon a felhasználó generál egy üzenetet, melyben jelzi, hogy egy új játékot kíván elindítani. Ezt az üzenetet a kliens továbbítja a szervernek. Ekkor szerver oldalon megtörténik a játék inicializálása. A szerver üzenetet küld a kliensnek a játék állapotáról, melyet a kliens fogadás után megjelenít. Ezután szerver oldalon elkezdődik a játék egy új köre. Ellenőrzi, hogy folytatódik-e a játék, mely azt jelenti, hogy a játékosok zsetonjainak ellenőrzése következik. Ha mindkét játékosnak van elég zsetonja, akkor a játék állapotának megfelelő művelet következik (kártyák leosztása, operátor választása). Miután ez végbement, a szerver újból üzenetet küld a kliensnek a megváltozott játékállapotról. Ezt az állapotot a kliens megjeleníti, majd felhasználói interakció következik. A felhasználó által választott műveletet továbbítja a kliens a szerver felé. Ez addig folytatódik, amíg a játék véget nem ér. A játéknak akkor van vége, ha valamelyik játékosnak nem maradt elég zsetonja ahhoz, hogy a vaktéteket megadják. Játék elmentése A felhasználónak lehetősége van a játék elmentésére. 8. sz. ábra 16
17 A felhasználó kezdeményezi az aktuális játék elmentését. Szerver oldalon létrejön egy új mentett játék objektum, melynek paraméterei az aktuális játék paraméterei alapján állítódnak be. Ezután az objektum bekerül a mentett játékok táblájába. Egy új eredmény bejegyzése az eredmény táblába Új eredmény akkor kerülhet a táblába, ha egy játék véget ért. 9. sz. ábra Ez a folyamat kizárólag szerver oldalon - függetlenül a klienstől- zajlik. Amikor vége lesz egy játéknak egy új eredmény objektum jön létre, melynek paramétereit a véget ért játék paraméterei alapján határozza meg a szerver. Miután ez megtörtént, az új eredmény objektum bekerül az eredmények táblába. 17
18 A program elméleti felépítése A programhoz tartozó komponens diagram: 10. sz. ábra A program két fő részből épül fel, kliens illetve szerver oldalakból. A program szerver oldala tartalmaz üzenet küldését és fogadását megvalósító komponenst. Ez a komponens felel a kapcsolat biztosításáért, az üzenetek helyes elküldésért és fogadásáért. Az üzenet feldolgozó komponens a beérkezett, illetve az elküldendő üzenetek helyes átalakítását valósítja meg. Az eseménykezelő felelős a program használata közben előforduló események helyes kezeléséért, valamint a vezérlés kiosztásáért. A vezérlést a játék vezérlőnek adja át, vagy pedig az adatbázis kezelőnek. A játékvezérlő kezeli a felhasználóhoz tartozó új játék indítása és mentett játék folytatása interakciókat. Az adatbázis kezelő feladata a regisztráció, belépés, regisztráció törlése, eredmények megtekintése, új eredmény felvétele, azaz a felhasználói interakciók megvalósítása, valamint a felhasználóhoz tartozó elmentett játékok listájának elkészítése. Az adatbázis kezelő a műveletek végrehajtásához a program mögött lévő adatbázist használja. Az eseménykezelő hiba esetén válasz üzenetet is generálhat, ha a vezérlést nem tudta továbbadni. 18
19 A játékvezérlő a játék során fellépő interakciókat is kezeli, valamint játékkal kapcsolatos üzeneteket fogalmaz meg, amit átad az üzenet feldolgozónak. Az adatbázis kezelő felelős az adatbázis műveletek végrehajtásából adódó válasz üzenetek megfogalmazásáért. A program kliens oldalának feladata kapcsolódni a szerverhez, valamint a szervertől érkező üzenetek helyes feldolgozása, és megjelenítése. A kliens feladatai közé tartozik továbbá a szerver irányába küldendő üzenetek megfogalmazása, azok helyes átalakítása, majd elküldése, és biztosítani a felületet a felhasználói interakciókhoz. 19
20 Szakdolgozati program gyakorlati megvalósítása A program mögött lévő adatbázis Az adatbázis sémát MySQL Workbench 5.0 OSS programmal készítettem el. 11. sz. ábra Az adatbázis viszonylag egyszerű, három táblából áll, melyek a programot futtató felhasználó különböző adatait tárolja. User tábla A felhasználó személyes adatait tartalmazza. User_Id: egy egész értékű mező, amely a felhasználó azonosítója, illetve egy rekord elsődleges kulcsa, ami magában foglalja azt, hogy két azonos értékű azonosító nem szerepelhet a táblában. Regisztrációkor automatikusan generálódik a felhasználóhoz. Name: egy karakter sorozat, amely a felhasználó nevét tartalmazza. Jellemzője, hogy tetszőlegesen válaszható és egyedi valamint a név nem lehet Fail mivel, az egy lefoglalt kulcsszó a program számára. Maximum 24 karakter hosszúságú. Egy név csak egyszer szerepelhet a táblában, ugyanis a név duplikációt a program kizárja. 20
21 Password: egy olyan karakter sorozat, amely a felhasználóhoz tartozó tetszőleges jelszót tartalmazza. Terjedelme maximum 10 karakter lehet és megadása kötelező. Registration_Time: az a dátum, amely a regisztráció időpontját jelenti. A program regisztrációkor automatikusan hozzárendeli a felhasználóhoz, ezért külön megadása nem szükséges. Result tábla A felhasználó által korábban végigjátszott játékok eredményeit tartalmazó tábla. Result_Id: olyan egész értékű mező, amely az eredmények azonosítja és a rekordok elsődleges kulcsa, ez kizárja, hogy két rekordhoz is ugyanaz az azonosító tartozzon, továbbá automatikusan rendelődik egy érték rekordhoz. Score : egész értékű, a játékos zsetonjainak számát mutatja meg a játék befejezése után. Round: egész értékű, amely a körök számát jelenti. Számon tartja, hogy mennyi kör kellett ahhoz, hogy a játék befejeződjön. Time: az az időpont, amikor a játék véget ért. Saved_Game tábla A játékosnak lehetősége van elmenteni a játékot, a Saved_Game tábla az elmentett játékok adatait tartalmazza. Saved_Game_Id: egész értékű, az elmentett játék azonosítóját jelenti, valamint a táblában szereplő rekordok elsődleges kulcsa. Két rekordnak nem lehet azonos elsődleges kulcsa. Automatikusan rendelődik egy új rekordhoz. Time: dátum, az elmentés időpontját jelenti. Pot1: egész érték, az aktuális játékban mutatja meg a felhasználó zsetonjainak számát a játék elmentésének idejében. Pot2: egész érték, a gépi játékos zsetonjainak számát jeleníti meg az elmentett játékban, a mentés időpontjában. Round: egész értékű és azt jelzi, hogy a játék hányadik körében lett elmentve. Blind: egész értékű, mely azt jelzi, hogy melyik játékos a nagyvak. Next: egész értékű. Ennek értéke határozza meg azt, hogy melyik játékos következett volna az adott játékban az elmentés idejében. Strategy: egész érték, a gépi játékos aktuális körbéli stratégiáját tárolja. 21
22 A táblák között lévő kapcsolatok A központi tábla a User tábla, és ehhez kapcsolódik a Result és Saved_Game tábla. User és Result táblák közötti kapcsolat: A User és a Result táblák között egy a többhöz kapcsolat (one to many) van, amely azt jelenti, hogy egy felhasználóhoz több eredmény is tartozhat, ugyanakkor egy eredményhez kizárólag egyetlen felhasználó tartozhat. A kapcsolat a két elsődleges kulcs segítségével jön létre. User és Saved_Game táblák közötti kapcsolat: A User és Saved_Game táblák között szintén egy a többhöz kapcsolat (one to many) van. A kapcsolat típusa szerint egy adott felhasználóhoz több elmentett játék tartozhat, míg fordított esetben, egy elmentett játékhoz szigorúan egy felhasználó tartozhat. A kapcsolat az elsődleges kulcsok alapján jön létre. A program kliens oldalának megvalósítása A kliens oldali program egy flash project, melyet Adobe Flash Professional CS5, és Flash Develop fejlelsztői környezetekkel valósítottam meg. A kliens feladatai: - Egy socket-en keresztül kapcsolat kiépítése a szerverrel. A kliens a 3456-os számú porton keresztül kommunikál a szerverrel a localhost -on. - A szerver által meghatározott funkciók grafikus megjelenítése. - Üzenetek küldése a szerver felé. - A szervertől érkezett üzenetek fogadása, és helyes feldolgozása. A fent említett funkciók megvalósításához végül öt saját.as osztályt, valamint öt.fla és ezekhez tartozó öt.swf fájlt hoztam létre. Main osztály Privát tagjai: - clientsocket, amely egy xmlsocket - loginhandler, amely egy LoginHandler A Main osztály egy MovieClip, ezt kihasználva jeleníti meg a kliens program a különböző 22
23 felületeket, oly módon, hogy erre a MovieClip-re tölti be a.swf fájlokat, tehát amíg fut a program, az összes felület a Main által jelenik meg. A Main osztály feladata a már várakozó szerverhez történő kapcsolódás a clientsocket elnevezésű xmlsocket tel. Amennyiben a kapcsolat létrejött, a vezérlés és a clientsocket továbbadódik egy LoginHandler típusú objektumnak. A Main objektum önmagát is továbbadja, mivel a Main osztály egy kiterjesztett MovieClip, amin a megjelenítés történik. A Main osztálynak további feladata nincs. LoginHandler osztály Az osztály feladata biztosítani a felhasználó belépésének, vagy regisztrációjának grafikus felületet és ennek eseménykezelését. Ezt a felületet a Login.swf importálásával biztosítja, amely így néz ki: 12. sz. ábra A program ezen szakaszából történő továbblépéshez szükségszerű regisztrálni, vagy belépni. Az első beviteli mezőbe kerül a felhasználónév, alá pedig a jelszó. A jelszó nem jelenik meg explicite, a felhasználó csak egy csillagokból álló karakter sorozatot lát. Ezek alatt található egy úgynevezett CheckBox, melyre rákattintva a regisztrációs szándékot lehet jelezni. A panel bal alsó sarkában egy Login/Registration gomb található. Ha a felhasználó már korábban regisztrált, akkor itt lehet belépni a játékba, ha még ezt nem tette meg, akkor ennek a gombnak a segítségével indíthatja el a regisztrációt. Ha a felhasználó klikkelt alogin/registration gombra, és a regisztrációjának megfelelően töltötte ki a 23
24 mezőket (nem maradtak üresen a mezők, és a felhasználónév nem Fail ), úgy a kliens üzenetet küld a szervernek. Az üzenet Json formátumú lesz, - mint minden kliens és szerver üzenet - melynek tagjai: - messagename: amely vagy login, vagy registration. A szerver ezt a tagot fogja vizsgálni annak megállapítására, hogy a felhasználó milyen műveletet szeretne végrehajtani. - username: a felhasználó által bevitt név - password: a névhez tartozó jelszó Az üzenetet elküldése után a kliens várakozni fog egy válasz üzenetre a szervertől, amelyben jelzi, hogy a művelet sikeres volt vagy sem. A válasz üzenet felépítése: - username: sikeres művelet esetén a megadott név, sikertelen művelet esetén Fail -succes: Egy olyan logikai érték, amely igaz érték esetén azt jelenti, hogy a belépés/regisztráció sikeres volt. Hamis érték esetén a művelet sikertelennek tekinthető és a felhasználónak újra meg kell adnia a nevét és a jelszavát. Egy LoginHandler objektum addig marad aktív, amíg a belépésre vagy regisztrációra kapott válasz üzenet azt nem jelzi, hogy az adott felhasználói művelet sikeres volt. Amennyiben sikeres volt a LoginHandler objektum eltávolítja a MovieClip-ről a Login.swf fájlt, és a vezérlést továbbadja egy WelcomeHandler típusú objektumnak. A vezérlés mellett továbbadja a sikeresen belépett felhasználó nevét, valamint a clientsocket nevű xmlsocket változót. WelcomeHandler osztály Feladata kezelőfelületet biztosítani különböző felhasználói interakciók számára. A felület grafikus megjelenését a Welcome.swf fájl biztosítja. 24
25 Welcome.swf: 13. sz. ábra Legfelül található egy üzenet, mely köszönti a sikeresen belépett felhasználót. Fentről lefelé haladva sorban a következő gombok találhatóak: - új játék indítása - játék betöltése - eredmények listázása - regisztráció törlése - kilépés Minden gomb lenyomása egy eseményt generál. Az esemény lehet egy PlayGameHandler, DeleteRagistrationHandler objektum hívása, vagy egy üzenet generálása, amit a kliens elküld a szervernek. Az elküldött üzenetek kezelését a szerver végzi. A New game gomb lenyomásával a felhasználó új játékot kezdhet. Ekkor egy új PlayGameHandler objektum jön létre. A Load game gomb lenyomásával a kliens először üzenetet küld a szervernek, amelyben kéri az aktuális felhasználó elmentett játékainak listáját. Miután megkapta a választ, megjeleníti a játékok listáját a gomboktól jobbra lévő területen, amiből választhat a játékos. Ha volt megjeleníthető játék, a felhasználó a lista alatt található Load gomb megnyomásával választhat belőle, így egy új PlayGameHandler objektum létrehozásával folytatódhat a korábban elmentett játék. Ezalatt a New game, Load game, List scores, 25
26 Delete registration és Exit gombok inaktívak lesznek mindaddig, amíg a felhasználó le nem nyomja a lista alatt található Cancel gombot. A List score gomb lenyomása egy listázási kérelmet generál, amelyben a kliens kéri az eredmények listázását. A szerver erre egy válaszlistát küld, amely a legjobb addigi lejátszott játékok eredményeit tartalmazza. A lista egy TextArea-ban jelenik meg, a gombok mellett jobbra. A listázást az Ok gombbal lehet jóváhagyni, a játék többi funkciója eközben inaktív. A Delete registration gomb lenyomásával a felhasználónak lehetősége lesz a regisztrációját törölni. Ehhez először létrejön egy DeleteRegistrationHandler objektum, amely kezelőfelületet biztosít ehhez a művelethez. Ez az új objektum megkapja a vezérlést, és a clientsocket-et. Az Exit gomb lenyomásával a felhasználó kilép a programból. A gomb lenyomása a szerver és a kliens közötti kapcsolat megszűnését eredményezi. A DeleteRegistrationHandler osztály Az osztály feladata kezelőfelületet biztosítani a felhasználó regisztrációjának törléséhez. A kezelőfelület megjelenítését a DeleteRegistration.swf fájl biztosítja: 14. sz. ábra Az első beviteli mezőbe kerül a felhasználó neve, az alatta lévőbe pedig a felhasználó jelszava. A Delete gomb lenyomásával kezdeményezhető a regisztráció megszüntetése. A felhasználó csak a saját regisztrációját törölheti, mivel csak akkor tudja magát törölni a 26
27 játékosok közül, ha előzőleg sikeresen bejelentkezett a játékba. Ugyanis bejelentkezéskor a kliens eltárolja a belépett felhasználó nevét és ezt a nevet hasonlítja össze a bevitt névvel. Ha a két név nem egyezik, akkor azt hibafelirattal jelzi a kliens. Amennyiben a két név azonos, (és a jelszó beviteli mező nem üres) a kliens üzenetet küld a szerver felé a felhasználó törléséről. Ennek az üzenetnek a felépítése: messagename username password A messagename: tartalma delete, ezt vizsgálva fogja a szerver tudni, hogy regisztráció törlése következik. A username: a felhasználó neve. A password: a felhasználó jelszava. Ezek értékét a beviteli mezők értéke határozza meg. Az üzenet elküldése után a kliens válaszra fog várakozni. A válasz üzenet tartalmazni fogja a művelet eredményességére vonatkozó információkat. Ha a művelet sikeres volt, egy új LoginHandler objektum generálódik, amely megkapja a vezérlést. Ha a művelet sikertelen volt, azt a kliens egy hibaüzenettel jelzi a felhasználónak. Ekkor lehetőség lesz a név és jelszó páros újbóli megadására. Ha a felhasználó meggondolja magát, a Cancel gomb lenyomásával visszatérhet az előző képernyőképre. PlayGameHandler osztály A PlayGameHandler osztály biztosítja a kezelőfelületet az új, vagy betöltött játék kezeléséhez. A felületet a Game.swf fájl biztosítja, és a következőképpen néz ki: 27
28 15. sz. ábra Ez a kép a játék egy körének végén lévő állapotot mutatja be. Ennél a pillanatnál a Quit, New round és a Quit with save gombok aktívak. Lenyomásuk üzeneteket generálnak, melyeket a kliens továbbít a szervernek. A Quit gomb létrehoz egy olyan üzenetet, amelyben a kliens a játék végét jelzi. Ekkor szerver oldalon bizonyos beállító metódusok hajtódnak végre (lásd lent a szerver oldal működésénél). Miután elküldte az üzenetet, egy WelcomeHandler objektum kapja meg a vezérlést, a képernyőkép is ennek megfelelően változik. A Quit with save gombbal lehet az aktuális játék elmentését kérni. Ha a szerver ilyen üzenetet kap az aktuális játék paraméterei eltárolódnak, hogy később lehessen folytatni a játékot. Ezt követően a vezérlés újra egy WelcomeHandler objektumé lesz és a képernyő is ennek megfelelően változik. A New round gombbal a játékos továbblép a következő körre. A Quit gomb mellett található felirat az aktuális kör számát jelzi, ezt az információt a kliens a szervertől kapja. 28
29 A panel jobb oldalán található feliratok fentről lefelé haladva a következőket jelölik: - a gépi játékos betett tétje, - a gépi játékos utolsó művelete (Fold, Check, Call, Raise, All in), - a gépi játékos még felhasználható zsetonjainak száma, - az elnyerhető tét összege, - a felhasználó bent lévő tétjének összege, - a játékos felhasználható zsetonjainak száma. Az ablak alsó harmadában lévő két kártya alatt található gombok a felhasználó által válaszható műveleteket jelölik. Ezen gombok csak akkor aktívak, ha az aktuális körben a felhasználó következik. Fold gomb: Lenyomásával a felhasználó eldobja lapjait. Ha a gép és a játékos tétjei egyenlőek, akkor a játék nem engedi eldobni a játékos lapjait (a Don t fold felirat jelenik meg a gomb mellett balra), mivel a játékosnak nem kell további zsetont felhasználnia arra, hogy a kör folytatódjon. Ha a tétek nagysága különbözik a gomb lenyomásával az adott kört a gép nyeri. Check gomb: Ha a két bent lévő tét nagysága egyenlő, akkor a gomb lenyomásának hatására az adott kör folytatódik. Abban az esetben ha a tétek nem egyformák a You can t check figyelmeztető felirat jelenik meg, tehát a felhasználónak más műveletet kell választania. Call/Raise gomb: A gomb lenyomásával tarthatja vagy emelheti a tétet a felhasználó. A tartás/emelés értékét a gomb mellett található, úgynevezett Stepper segítségével lehet megadni. A Stepper alapértelmezett értékeként az az összeg jelenik meg, amelyet legalább meg kell adnia a felhasználónak. A maximum értéke pedig az adott körben maximális tét lehet. Ez a tét a gépi játékos és felhasználó betett zsetonjainak különbségéből és a már bent lévő tétből áll. Ezen gombok lenyomása egy operátor üzenetet generál, amelynek felépítése: username messagename opname pot 29
30 A username a felhasználó neve lesz, a messagename pedig operator. Az opname jelzi, hogy milyen operátort választott a felhasználó (0-Fold, 1-Check, 3-Call, 4-Raise). A pot pedig a játékos betett tétjeihez hozzáadandó zsetonszámot jelenti. PlayGameHandler osztály működése: Ha egy PlayGameHandler objektum létrejön, akkor megkapja paraméterként a clientsocket-et, amelyen keresztül kommunikálhat a szerverrel. Egy movieclip-en keresztül jeleníti meg és megkapja a belépett felhasználó nevét. Ezek után betölti a Game.swf fájlt, majd ellenőrzi, hogy maradt-e kártya a movieclip-en. Ha maradt, akkor letörli azokat és egy új játék indítására vonatkozó üzenetet küld a szervernek, végül felkészül a szervertől érkező üzenetek fogadására. Az üzenetek típusát a counter privát tag értéke jelzi. Counter értékei: 0: információs üzenet következik 1: kártya megjelenítésére vonatkozó üzenet 2: tétek értékeire vonatkozó üzenet 3: gépi játékos operátor üzenete 4: információ arról, hogy, ki milyen eredménnyel zárta a kört Az információs üzenet felépítése: - sequence: amely egy logikai érték. Ha hamis, akkor a játék véget ér és a vezérlést egy WelcomeHandler objektum kapja meg, a képernyő is ez alapján módosul. Amennyiben igaz, akkor a játéknak még nincs vége. - next: egy logikai érték. Igaz esetén a felhasználó fogja kezdeni a kört, ha hamis, akkor pedig a gép kezd. - gameround: a játék körének száma. - inround: a belső kör értéke (1-Flop előtt, 2-Flop után, 3-Turn után, 4-River után). Ha a sequence tag igaz értékű, akkor a counter tag értéke 1-re állítódik, tehát a következő üzenet kártya üzenet lesz. 30
31 Kártya üzenet: Az összes megjelenítendő kártyáról tartalmaz információt, azt osztályozza, hogy kié a kártya (felhasználó,gép,közös kártya). Ezek alapján jeleníti meg a megfelelő helyen a kliens a kártyákat. Ha nem történt all in, akkor tétek értékeire vonatkozó üzenet következik, ha volt all in, akkor továbbra is kártya üzenetek jönnek, végül az eredmény üzenet. Tétek értékeire vonatkozó üzenet: A felhasználó és a gépi játékos zsetonjaira vonatkozó üzenet. Az üzenet tagjai : - cpot: a gépi játékos még felhasználható zsetonjainak száma, - incpot: a gépi játékos játékban lévő zsetonjainak száma, - hpot: a felhasználó még felhasználható zsetonjai, - inhpot: a felhasználó játékban lévő zsetonjainak száma, - mpot: az elnyerhető zsetonok száma. Egy ilyen üzenet után, ha a korábban kapott információs üzenet azt tartalmazta, hogy a gép kezd, akkor a counter értéke 3 lesz, tehát a kliens egy operátor üzenetet fog várni. Ha a felhasználó kezdi a kört, akkor pedig aktívvá válnak a Fold, Check, Call/Raise gombok. Operátor üzenet: Egy játékos egy műveletét leíró üzenete. (Felépítése és tagjainak jelentését lásd fentebb.) Információ a nyertesről: Az üzenet megjelenik a Quit with save gomb alatt. Arról hordoz információt, hogy ki és milyen lapkombinációval nyerte a játékot (Draw, You, Computer). Ha ilyen üzenet érkezik, akkor a gépi játékos lapjai is láthatóvá válnak. Speciális helyzet (all in): All in -ről abban az esetben beszélhetünk, amikor az egyik fél beteszi az összes megmaradt zsetonját a játékba és a másik fél ezt a tétet tartja. Ekkor a kliens megjeleníti a gépi játékos lapjait, a szerver pedig elküldi a még le nem osztott kártyák információit is a kliensnek, ezután közli, hogy melyik játékos nyert. 31
32 A program szerver oldalának megvalósítása A program szerver részének elkészítéséhez Netbeans es verziószámú fejlesztői környezetet használtam. A szerver program feladata kapcsolatot biztosítani a kliens számára, ezen a kapcsolaton keresztül üzenetek küldése és fogadása, a fogadott üzenet helyes feldolgozása. Továbbá a szerver program felel az adatbázis létrehozásáért és eléréséért, amit apache derby-vel valósítottam meg. Az adatbázis a szerver mappájában jön létre, tehát a felhasználó csak olyan meghajtón tudja helyesen futtatni a programot, ahol van írási jogosultsága. A szerver program 57 osztályt tartalmaz, így helyhiány miatt csak a fontosabb osztályok működését fejtem ki bővebben. Az osztályok működése csomagonkénti lebontásban a következő: Persistance csomag A csomag osztályait a Java Persistence Api keretrendszer segítségével készítettem el, amely lehetővé teszi, hogy a táblák egyedeit Java objektumokként kezeljem, ehhez az osztálydefiníció elé annotáció szükséges. Az adatbázison módosítást végrehajtó metódusok elé pedig annotáció elhelyezése szükséges. A persistance csomagban találhatóak azok az osztályok, amelyek reprezentálják az adatbázis táblák egyedeit, valamint itt találhatók azok az osztályok, amelyek felelősek a táblákkal végzett műveletekért. A User, Scores és SavedGame osztályok az adatbázisban lévő táblák egyedeit reprezentálják. 32
33 16. sz. ábra A többi osztály az adatbázis táblákkal történő különböző műveletekért felelősek. A Registration osztály feladata egy új felhasználó felvétele a User táblába, azzal a megkötéssel, hogy két azonos nevű felhasználó nem szerepelhet a táblában. Az AddScore osztály egy új eredményt hoz létre, és elhelyezi azt a Scores táblába. A SaveAGame osztály pedig egy SavedGame objektumot ír a Saved_Game táblába. A DeleteRegistration osztály az adott nevű felhasználót távolítja el a User táblából abban az esetben, ha szerepel adott nevű felhasználó adott jelszóval a táblában. A Login, ListScores, ListSavedGame, ChooseASavedGame osztályok egy-egy lekérdezést hajtanak végre. A táblák elérését egy EntityManager biztosítja. Az EntityManager paramétereit a springbeans.xml, persistance.xml és az application.properties fájlok tartalmazzák. 33
34 Game csomag A Game csomag osztályai a játékhoz kapcsolódó osztályokat tartalmazza. A Card osztály reprezentál egy kártyalapot. Két privát tagja van, color és value, amik egy adott kártya színét és értékét jelentik. 17. sz. ábra A HumanPlayer osztály az emberi játékos tulajdonságait, a ComputerPlayer osztály pedig a gépi játékos jellemzőit tartalmazza sz. ábra
35 Mint látható a két osztály nagyon hasonló. A különbséget az adja, hogy a gépi játékosnak van stratégiája, amit a játék során határoz meg a program, valamint a játék vezérléséből adódóan a gépi játékosnál figyelni kell azt, hogy az adott körben hajtott-e már végre valamilyen műveletet. Ezt az inroundoperation nevű privát logikai változó értéke tartalmazza. Ezeken a tagokon kívül a két osztály megegyezik, ugyanazokkal a tulajdonságokkal bírnak. A pot a játékosok zsetonjainak mennyiségét, az inpot pedig a még felhasználható zsetonjainak számát jelenti. A blind nevű logikai tag igaz érték esetén nagyvakot, ellenkező esetben kisvakot jelent. Az allin nevű logikai tag igaz érték esetén azt jelzi, hogy a játékos már betette az összes zsetonját a játékba. Az Operator osztály a játék során előforduló műveletek reprezentálja: dobás(fold), mehet(check), tét tartása(raise) és tét emelése(raise). A Dealer osztály a játékban az osztó szerepét tölti be. 19. sz. ábra Feladata a kártyapakli előállítása, annak megkeverése, valamint a játék során a kártyák helyes kiosztása a játékosoknak. A BestCards osztály a játékosok legjobb öt lapját valamint ennek a lapkombinációnak az erősségét tartalmazza. 35
36 20. sz. ábra A result értéke 0-tól 9-ig vehet fel értéket a lapkombinációk erősségének függvényében. A 0 (a royal flush) a legerősebb, a 9 (high cards) a leggyengébb lapkombinációt jelenti. A Judge osztály best5cards metódusának feladata megállapítani egy játékos legjobb öt lapját hét kártyalapból kiválasztva. Ehhez először rendezi a kártyákat szín és érték szerint is. Majd az így rendezett listákat vizsgálva tudja eldönteni, hogy az adott hét kártyalapból melyik az öt legerősebb kombináció. A whowon metódus feladata pedig eldönteni a két játékos közül azt, hogy az adott körülmények között melyikük nyert. 21. sz. ábra A ChooseOperator osztály feladata megállapítani a gépi játékos számára a legmegfelelőbb operátort az adott körülményeket figyelembevételével. 36
37 A Game osztály felelős új játék indítása esetén alapértékekre állítani a játék paramétereit. Ha egy új kör kezdődik beállítja a vakokat, illetve, ha a gép kezd, akkor a ChooseOperator osztály segítségével kijelöl egy operátort a gépi játékosnak. Szintén az osztály feladata, hogy a vaktétek összegét emelje minden 10 lejátszott kör után. Ennél az osztálynál fontos megjegyezni, hogy singleton, tehát a program futása során egy Game objektum jön létre, ezáltal több helyről lehet módosítani ugyanazt a Game objektumot. Ennek a későbbiekben az OperatorHandler osztálynál lesz jelentősége. Ha a játék tovább már nem folytatható mivel valamelyik játékos zsetonjainak száma már a minimális tét alatt van -, akkor a befejezett játék és a játékos paraméterei alapján az AddScore osztály segítségével egy új eredményt ad hozzá a Result táblához. Message csomag A csomagban található egy Attachment interface, amelyet minden üzenet implementál, ezáltal az üzenetek kezelése sokkal egyszerűbbé válik. A klienstől érkező és a kliensnek elküldött üzenetek JSON formátumúak. Választhattam volna azt is, hogy az üzenetek xml alapúak, viszont a JSON formátumú üzenet sokkal rövidebb karakter sorozatban jelenik meg, mint egy xml formátumú üzenet. Egy üzenet JSON formátumban a következőképpen néz ki, egy OperatorMessage osztályú üzenetet alapul véve: { username : Zoli, messagename : operator, opname :0, pot :0} Az üzenetek feldolgozását a későbbiekben fejtem ki. Az itt található OperatorMessage osztály egy operátor üzenetet ábrázol, amely egyaránt lehet ki-, illetve bemenő üzenet. 37
38 22. sz. ábra Az OutgoingMessage pedig a kimenő üzenetet ábrázolja. 23. sz. ábra A username a bejelentkezett felhasználó neve, akinek az üzenetet el kell küldeni, az attachment pedig maga a kimenő üzenet, amelyet valamely outgoingmessages csomagban lévő osztály reprezentál. A csomagon belül lévő outgoingmessages csomagban található osztályok a kliens irányába továbbítandó üzenetek ábrázolják. Ezek közé tartozik a CardMessage, ami a kliensnek azt jelzi, hogy milyen kártyát kell megjelenítenie. A ConnectAnswer a belépésre, vagy a regisztrációra adott választ jelenti. A DeleteRegistrationAnswer a felhasználó törlésének sikerességét jelző üzenet. A GameInfoMessage egy játékról tartalmaz alapvető információkat (folytatódik-e még a játék, hanyadik körnél tart a játék, ki kezdi az adott 38
39 kört). A ListSavedGameAnswer a felhasználó elmentett játékainak listáját tartalmazza, amelyek közül betölthet egyet. A ListScoreAnswer az addig lejátszott játékok eredményét ábrázolja. A PotMessage a zsetonokra vonatkozó információkra vonatkozik. A WinnerInfo osztály a játék egy körének eredményét jelenti. A csomagon belül lévő incomingmessages csomagban a klienstől érkező üzeneteket reprezentáló osztályok találhatóak. Ezek az üzenetek mutatják be a játékos interakcióit (regisztráció, belépés, játékmentése, új játék kezdése stb.) Mivel az üzeneteket JSON formátumban küldi és fogadja a szerver, ezért a kimenő osztályok tostring() metódusait úgy írtam felül, hogy egy JSON formátumú karakter sorozattal térjenek vissza, ezt a Gson.toJson függvényhívással lehet elérni. A bejövő üzeneteknél pedig írtam egy fromstring(string gsonstring) metódust, amely egy adott JSON formátumú karakter sorozatból előállítja a megfelelő üzenetet. Ezt a Gson.fromJson metódus biztosítja. Az üzenetek átalakítását Google Gson-nel valósítottam meg. Gson csomag Ez a csomag egyetlen osztályt tartalmaz, a GsonParser osztályt, amelynek feladata a beérkező üzenetek Google Gson formátumból történő helyes átalakítása. 24. sz. ábra 39
40 Server csomag A szerver csomag tartalmazza a Server osztályt, amelynek a feladata a kliens és a szerver közötti kommunikációs csatorna kiépítése. A kommunikáció a 3456-os számú porton keresztül történik. A Server osztály ehhez a kapcsolathoz Java NIO library-n alapuló Apache mina keretrendszert használ. A keretrendszer használatával esemény vezérelt aszinkron kapcsolat alakítható ki a szerver és a kliens között. A framework megköveteli, hogy az osztály tartalmazzon egy kiterjesztett IoHandlerAdapter tagot, amely többek között a beérkező üzenetek feldolgozásáért is felelős. Az osztály feladata továbbá üzenetek fogadása a klienstől, valamint üzenetek küldése a kliens részére. 25. sz. ábra A start() metódus hívásával történnek meg azok a beállítások, amelyek a kapcsolatra vonatkoznak. A szerver a start metódus végén kezd el várakozni a kliensre az acceptor.bind (new InetSocketAddress(PORT)) metódus hívással. A stop() metódus meghívása a kapcsolat bontását eredményezi. A send(outgoingmessage message) metódus felelős egy kimenő üzenet helyes elküldéséért a kliens irányába. A beérkező üzenetek kezelését a Server osztály messagehandler tagja végzi. 40
41 26. sz. ábra A beérkező üzeneteket a MessageHandler osztály messagereceived metódusa érzékeli, majd átadja a parser nevű GsonParser objektumnak, amely átalakítja azt. Először egy UserConnect osztályú üzenet érkezik, ami a regisztrációt vagy a belépést takarja. Ha a regisztráció vagy belépés sikeres volt, akkor azt a session-t - amelyen keresztül az üzenet érkezett - eltárolja a MessageHandler a sessions nevű HashMap-be. A szerver a továbbiakban ezen az eltárolt session-ön keresztül fog kommunikálni a klienssel. Eventhandling csomag Az ebben a csomagban található osztályok feladata a beérkezett kérések teljesítése. A csomagban található egy Handler interface, amelynek egy handle(attachment message) metódusa van. Az eseménykezelő osztályok ezt az interface-t implementálják, és a handle metódust írják felül. 27. sz. ábra 41
42 Mivel minden üzenet implementálja az Attachment interface-t, ezért az üzenetek osztályainak átalakítása hiba nélkül végrehajtható. A ConnectHandler osztály feladata elvégezni a regisztrációt vagy belépést, valamint a megfelelő válasz üzenet megfogalmazása. 28. sz. ábra A regisztrációhoz vagy belépéshez szükséges paramétereket egy UserConnect típusú üzenetből veszi ki. Az üzenet messagename paraméterét felhasználva megállapítja, hogy regisztráció, vagy belépés végrehajtását kérte-e a felhasználó. Ha regisztrációt, akkor a Registration osztályú registration privát tag reg(string username, String password) metódusát hívja meg a megfelelő paraméterezéssel, és ennek megfelelően állítja be a válasz üzenet paramétereit. Ha ez a metódus a Fail karakter sorozattal tér vissza, akkor a regisztráció sikertelen volt. A ConnectAnswer típusú answer objektum paramétereit beállítja a regisztráció vagy belépés műveletének sikerességének függvényében, amelyet a szerver ezután elküld a kliensnek. Ha az üzenet messagename paramétere azt jelzi, hogy a felhasználó belépést kíván végrehajtani, akkor a Login osztályú login privát tag login(string username, String password) metódusa hajtódik végre. A válasz üzenet beállítása ugyanúgy történik, mint regisztráció esetén, tehát a metódus egy karakter sorozattal tér vissza, amely ha Fail, akkor a belépés sikertelen volt, ellenkező esetben sikeres. A DeleteRegistrationHandler osztály felelős a klienstől érkező a regisztráció megszüntetését kérő üzenet végrehajtásáért. 42
43 29. sz. ábra A handle metódus paraméterének konkrét osztálya UserDelete lesz. Az üzenet tagjait felhasználva hajtja végre a regisztáció törlését a DeleteRegistration osztályú delete privát tag deletereg(string username, String password) metódusának hívásával. A metódus visszaad egy karakter sorozatot, amely, ha succes, akkor a törlés sikeres volt, ellenkező esetben sikertelen. Ez alapján beállítja a DeleteRegistrationAnswer típusú answer objektum paramétereit, amelyet ezután a szerver elküld a kliensnek. A GameStartHandler osztály felelős egy játék egy új körének elindításáért. Amennyiben a játék első körét indítja el, úgy a Game típusú game objektum paramétereit alapértékre állítja, majd meghívja a playgame() metódusát. 30. sz. ábra A GameEndHandler osztály feladata a Game típusú game objektum paramétereinek visszaállítása alapértékre. Mivel a game tag singleton, ezért ez az osztály ugyanazt a Game típusú objektumot kezeli, mint a GameStartHandler osztály. 43
44 31. sz. ábra A ListSavedGameHandler osztály feladata a belépett felhasználó által küldött ListSavedGameMessage típusú üzenet kezelése. 32. sz. ábra A handle() metódus lekérdezi az adott felhasználó elmentett játékainak felsorolását a list ListSavedGames osztályú privát tag segítségével. A megkapott listát a szerver elküldi a kliensnek. A ListScoreHandler osztály feladata a Result táblában lévő eredmények lekérdezése. 33. sz. ábra 44
45 A handle metódusban a list ListScores osztályú privát tag végrehajtja a listscores() metódusát. A lista az eredmény eléréséhez szükséges körszámok és a dátum szerint növekvő sorrendben, az elért pontszámok alapján pedig csökkenő sorrendben rangsorolja a felhasználókat. Az eredményül kapott listát a szerver elküldi a kliensnek. A LoadGameHandler osztály feladata a LoadGameMessage típusú üzenetben megadott azonosítójú elmentett játék betöltése. 34. sz. ábra A handle() metódusban a choose.choosesavedgame(loadmessage.getgameid()) függvényhívással egy lekérdezés ellenőrzi, hogy létezik-e a megadott azonosítójú elmentett játék. Ha létezik, akkor a game Game osztályú objektum paramétereit beállítja a kiválasztott elmentett játék paraméterei alapján. Az OperatorHandler osztály feladata a klienstől érkező OperatorMessage típusú üzenet helyes értelmezése, feldolgozása, valamint az üzenetnek megfelelő válasz megfogalmazása. 45
46 35. sz. ábra Ha egy OperatorMessage típusú üzenet érkezik, akkor a game Game típusú objektum paraméterei az üzenet paraméterei alapján megváltoznak. Mivel a game singleton, ezért itt ugyanarról a game objektumról van szó, mint a GameStartHandler osztály esetén. A felhasználó művelete, valamint a játék állapota alapján különböző válasz üzeneteket fogalmaz meg. A válasz üzenet lehet OperatorMessage, CardMessage, PotMessage vagy WinnerInfo osztályú objektum. A válasz üzenet típusa attól függ, hogy a játék éppen hol tart, és a beérkezett OperatorMessage milyen értékű paramétereket tartalmazott. A SaveGameHandler osztály feladata a klienstől érkező SaveGameMessage típusú üzenet feldolgozása. 36. sz. ábra 46
47 Első lépésben a handle() metódusban létrejön egy új SavedGame típusú objektum. Ennek paramétereit az aktuális játék paraméterei alapján beállítja, majd a save SavedAGame osztályú privát tag save(string username, SavedGame sg) metódusának végrehajtásával a Saved_Game táblába egy új rekordot vesz fel. Mivel a game singleton, ezért az aktuális, játék paramétereit tartalmazza. Az EventHandler osztály feladata eldönteni, hogy az adott üzenetnek megfelelő eseménykezelő metódusa hajtódjon végre. 37. sz. ábra A handling metódus a beérkezett üzenet típusának vizsgálatával eldönti, hogy melyik eseménykezelő handle() metódusának meghívása szükséges. Main csomag A csomag tartalmazza a Main osztályt, amely elindítja a szerver programot. A Main osztály main metódusa tartalmazza az ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-beans.xml") függvényhívást, elvégzi a program inicializálását, legenerálja annotációval ellátott osztályok singleton példányait, valamint kiépítit a kapcsolatot a spring-beans.xml-ben megadott adatbázissal. Továbbá a main metódus tartalmazza a következő sorokat: Server server = ctx.getbean(server.class), amely elérhetővé teszi a server objektumot server.start(), amely elindítja a server objektumot. 47
48 Összegzés A program természetesen továbbfejleszthető. Ilyen továbbfejlesztés lehet például, ha a játék nem két, hanem több játékos között zajlana. A program egy másik lehetséges evolúciója az lehetne, ha a szerver program nem a felhasználó számítógépén futna, hanem egy távoli gépen. Így a kapcsolat webes alapúvá válna. A játékot valósághűvé lehetne tenni azzal, ha a gépi játékos valamilyen mesterséges intelligencián alapuló algoritmust használna a műveletei kiválasztásához. Szakdolgozatom célja egy kétszemélyes póker játék megvalósítása volt. A hangsúlyt a program megvalósításához szükséges technológiákra helyeztem. Az első fejezetben kifejtettem a programmal szembeni felhasználói követelményeket, amelyek a következők voltak: - regisztráció - belépés - regisztráció törlése - eredmények megtekintése - játék betöltése - új játék indítása - játék elmentése - új eredmény bejegyzése Az elkészült program hiba nélkül megvalósítja ezeket a felhasználói követelményeket. A program minden funkcióját többször is teszteltem, magát a játékok megközelítőleg 50-szer játszottam végig. A program szerver oldalának megvalósításához többek között Java-t, azon belül Spring, Apache mina, JPA keretrendszereket használtam. Valamint az üzenetek formátumának JSON-t választottam. Ezek a technológiák nagyon hasznosak, és helyes használat mellett leegyszerűsítik a programozó munkáját. A Spring framework használata leegyszerűsíti a fejlesztést, a Spring contex elvégzi a Spring komponensek közötti függőségek kezelését. Az Apache mina Java NIO library-n alapuló keretrendszer, használatával esemény vezérelt aszinkron kommunikáció valósítható meg. A JSON formátumú üzenetek kezelése egyszerű, a küldött és fogadott üzenetek lényegesen rövidebbek, mintha xml alapúak lennének. Az üzenetek kódolásához, dekódolásához Google Gson-t használtam. 48
49 A JPA keretrendszer használatával az adatbázis táblák egyedeit Java objektumokként lehet kezelni, valamint egyszerűen lehet lekérdezéseket, módosításokat, törléseket végrehajtani. A kliens oldal flash alapokon nyugszik, mellyel ez előtt még nem dolgoztam, mégis sikerült megvalósítanom, azokat amiket elterveztem. Úgy érzem, hogy a szakdolgozatommal elértem a kitűzött céljaimat, és sikerült megismerkednem a választott technológiákkal. Persze nem állíthatom, hogy az ismereteim átfogóak lennének, de mindenképpen sikerült rengeteget tanulnom a dolgozatom elkészítése folyamán. 49
50 Köszönetnyilvánítás Ezúton szeretném megköszönni Dr. Horváth Géza tanár úrnak, hogy elvállalta a szakdolgozatom témavezetői feladatait. Továbbá szeretném megköszönni a rengeteg elméleti segítséget testvéremnek, Kocsi Jánosnak, aki a szakdolgozatom külső témavezetője volt. Nélküle biztosan nem készült volna el ez a szakdolgozat. 50
51 Irodalomjegyzék 1. A programmer s guide to Java SCJP certification: a comprehensive primer/khalid A. Maghal, Rolf W. Rasmussen.- 3rd ed. - New York: Apress, cop p. 2. Pro JPA 2: Mastering the Java Persistance API/ Mike Keith, Merrick Schincariol. New York: Apress, cop p. 3. Spring Recipes/ Gary Mak, Josh Long, Daniel Rubio.- 2nd ed. New York: Apress, cop p. 4. Adobe Flex 3: Developer Guide, - San Jose: Adobe Systems Incorporated, cop p. Internetes források 1. (2010. november 16.) 2. (2010. november 16.) 3. (2010. november 16.) 51
52 Plágium - Nyilatkozat Szakdolgozat készítésére vonatkozó szabályok betartásáról nyilatkozat Alulírott (Neptunkód: ) jelen nyilatkozat aláírásával kijelentem, hogy a.. című szakdolgozat/diplomamunka (a továbbiakban: dolgozat) önálló munkám, a dolgozat készítése során betartottam a szerzői jogról szóló évi LXXVI. tv. szabályait, valamint az egyetem által előírt, a dolgozat készítésére vonatkozó szabályokat, különösen a hivatkozások és idézések tekintetében. Kijelentem továbbá, hogy a dolgozat készítése során az önálló munka kitétel tekintetében a konzulenst, illetve a feladatot kiadó oktatót nem tévesztettem meg. Jelen nyilatkozat aláírásával tudomásul veszem, hogy amennyiben bizonyítható, hogy a dolgozatot nem magam készítettem vagy a dolgozattal kapcsolatban szerzői jogsértés ténye merül fel, a Debreceni Egyetem megtagadja a dolgozat befogadását és ellenem fegyelmi eljárást indíthat. A dolgozat befogadásának megtagadása és a fegyelmi eljárás indítása nem érinti a szerzői jogsértés miatti egyéb (polgári jogi, szabálysértési jogi, büntetőjogi) jogkövetkezményeket. Debrecen, hallgató 52
2009 évi Hallássérültek Texas H oldem Póker Bajnokság
2009 évi Hallássérültek Texas H oldem Póker Bajnokság Versenykiírás: - A versenyen részt vehet bármilyen hallássérültek személy, aki a nevezési díjat a verseny megkezdése előtt befizeti, kivéve: 18 év
A PÓKER ALAPJAI. Community cards (Közös lapok) : A középre kiosztott 5 lap, amit mindenki sajátjaként használhat.
A PÓKER ALAPJAI Idegen kifejezések: Ebben a kis összefoglalóban megtaláltok minden olyan információt, ami ahhoz kell, hogy a pókerasztalnál ne érezzétek magatokat idegennek. Még akkor se, ha valójában
TERC V.I.P. hardverkulcs regisztráció
TERC V.I.P. hardverkulcs regisztráció 2014. második félévétől kezdődően a TERC V.I.P. költségvetés-készítő program hardverkulcsát regisztrálniuk kell a felhasználóknak azon a számítógépen, melyeken futtatni
A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan
Telepítés internetről A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan Új szolgáltatásunk keretén belül, olyan lehetőséget kínálunk a TERC VIP költségvetéskészítő program
Az autorizáció részletes leírása
Az autorizáció részletes leírása 1. REGISZTRÁCIÓ ÉS FELTÉTELEI 1.1 Regisztráció Az Autorizációs kérés előtt a szervezetnek vagy a magánszemélynek regisztráltatnia kell magát. A regisztrációs lapon megadott
OKTATÁSKUTATÓ ÉS FEJLESZTŐ INTÉZET TÁMOP-3.1.5/12-2012-0001 Pedagógusképzés támogatása
TÁMOP-3.1.1-11/1 XXI. századi közoktatás Technikai tudnivalók a jelentkezéshez Regisztráció A regisztráció az OFI honlapon elérhető A pályázók kizárólag elektronikusan úton jelentkezhetnek az innen elérhető
Sú gó az ASIR/PA IR Públikús felú lethez
Sú gó az ASIR/PA IR Públikús felú lethez Súgó a magyarországi központi Agrárstatisztikai és Piaci Árinformációs rendszer publikus moduljához. 1 Publikus felhasználói regisztráció A publikus felület Regisztráció
Felhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, [email protected] GDF Abakusz regisztrációs kód: GDFAba43
a TávTagTár programhoz Készítette: Nyíri Gábor, [email protected] GDF Abakusz regisztrációs kód: GDFAba43 Tartalomjegyzék Futási feltételek... 3 Telepítés... 3 Indítás... 3 Főablak... 4 Új személy felvétele...
Felhasználói kézikönyv
Felhasználói kézikönyv Központi Jogosultsági Rendszer Nemzeti Szakképzési és Felnőttképzési Intézet 2010. július 23. Verziószám: 1.0 Végleges Tartalomjegyzék 1 Bevezető... 1 2 A Központi Jogosultsági Rendszer
EDInet Connector telepítési segédlet
EDInet Connector telepítési segédlet A cégünk által küldött e-mail-ben található linkre kattintva, a következő weboldal jelenik meg a böngészőben: Az EdinetConnectorInstall szövegre klikkelve(a képen pirossal
Regisztrációs kérelem küldése
Regisztráció kérés küldése a NOVITAX-nak A felhasználói adatok, valamint a Regisztrálandó cégek tábla pontosítása után a főmenü Regisztráció/2. Regisztrációs állomány mentése és beküldése menüpontban a
e-szignó Online e-kézbesítés Végrehajtási Rendszerekhez
MICROSEC Számítástechnikai Fejlesztő zrt. e-szignó Online e-kézbesítés Végrehajtási Rendszerekhez Felhasználói útmutató https://online.e-szigno.hu/ 1 Tartalom 1. Bevezetés... 3 2. A rendszer használatának
Hungaropharma Zrt. WEB Áruház felhasználói útmutató. Tartalomjegyzék
Hungaropharma Zrt. WEB Áruház felhasználói útmutató Tartalomjegyzék Tartalomjegyzék... 1 Bejelentkezés a WEB Áruházba... 2 Rendelés rögzítése... 3 RENDELES.CSV állomány specifikációja... 13 Visszaigazolások
FELHASZNÁLÓI ÚTMUTATÓ
FELHASZNÁLÓI ÚTMUTATÓ VÉRADÁS IDŐPONT SZERKESZTŐ (verzió: 1.2) 2013. április 1. Tartalomjegyzék 1. Telepítés és indítás... 3 2. Frissítés... 3 3. Beállítás... 4 4. Felület... 4 5. Véradó helyszínek...
Kezdő lépések Outlook Web Access
Kezdő lépések Outlook Web Access A Central Europe On-Demand Zrt. által, a Telenor Magyarország Zrt. ügyfelei részére nyújtott szolgáltatások rövid kezelési útmutatója Tartalom Bevezetés... 3 Rendszerkövetelmények...
Chat felhasználói segédlet
Chat felhasználói segédlet A Chat indítása, regisztráció, belépés A Chatre a honlapról www.smlista.hu, vagy a http://chat.smlista.hu címrıl lehet belépni. A fıoldalon van a belépés a Chatre, ha már van
Felhasználói kézikönyv
Educatio Társadalmi és Szolgáltató Nonprofit Kft. Delegált Admin felület Felhasználói kézikönyv 2012.06.27. Dokumentum állapota: Tervezet Verzió: 0.1.0 Tartalomjegyzék Tartalom 1. Bevezetés... 3 2. Elérés...
Mobil Partner telepítési és használati útmutató
Mobil Partner telepítési és használati útmutató Tartalom Kezdeti lépések... 2 Telepítés... 2 A program indítása... 6 Mobile Partner funkciói... 7 Művelet menü... 7 Kapcsolat... 7 Statisztika... 8 SMS funkciók...
SQL Backup and FTP. A program telepítésének menete. A szoftvert a következő weboldalról ingyenesen tölthető le: https://sqlbackupandftp.
SQL Backup and FTP A szoftvert a következő weboldalról ingyenesen tölthető le: https://sqlbackupandftp.com/ A program telepítésének menete A telepítő elindítása után megjelenő képernyő a Next > gomb megnyomásával
Geotechnika II. (NGB-SE005-2) Geo5 használat
Geotechnika II. (NGB-SE005-2) Geo5 használat A Geo5 szoftvert (1. házi feladathoz opcióként, 2. házi feladathoz kötelezően) online felületen keresztül, távoli asztal kapcsolattal lehet használni. Az ehhez
ÁNTSZ portál regisztráció, felhasználói adatok módosítása, jogosultságok felhasználói leírás [Alcím]
ponte.hu Kft. ÁNTSZ portál regisztráció, felhasználói adatok módosítása, jogosultságok felhasználói leírás Kapcsolattartó: Céginformációk: ponte.hu Kft. 1 ponte.hu Kft. 1065 Budapest, Bajcsy-Zsilinszky
1. Origin telepítése. A telepítő első képernyőjén kattintson a Next gombra:
1. Origin telepítése Az Origin telepítéséhez tegye be az Origin CD-t a CDROM-ba, majd kattintson az Origin 7.5 hivatkozásra, miután elindult a CD behelyezésekor a telepítő program. Ha nem indulna el a
Egyetemi könyvtári nyilvántartó rendszer
RENDSZERTERV Egyetemi könyvtári nyilvántartó rendszer A rendszer célja A projekt célja egy egyetemi könyvtár nyilvántartó rendszerének megtervezése. A legfőbb követelmény, amit a rendszerrel szemben támasztok,
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
A Portál rendszer felületének általános bemutatása Felhasználói útmutató Támogatott böngészők Internet Explorer 9+ Firefox (legújabb verzió) Chrome (legújabb verzió) Felületek felépítése Információs kártyák
OTP Egészségpénztár OTP Nyugdíjpénztár OTP SZÉP Kártya OTP Cafeteria Nyilatkoztató. https://www.otpportalok.hu. Készítette: Konyicsák Zoltán
https://www.otpportalok.hu Készítette: Konyicsák Zoltán Tartalom 1 Néhány szó az OTP Portálok programról... 3 1.1 Az OTP Portálok bevezetésének célja... 3 2 Belépés az OTP Portálok oldalra... 4 2.1 A bejelentkezéshez
Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció
ERA Elektronikus aláírás - felhasználói dokumentáció Tartalomjegyzék 1. Bevezető... 3 1.1. Általános információk... 3 2. DesktopSign... 3 2.1. Általános információk... 3 2.2. Telepítés... 3 3. MNBSubscriber...
Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba
Importálás Külső programok által generált imp és.xml állományokat be lehet tölteni a program import funkcióival. Az ABEV2006 az xml állományok importálását nem tudta. Ez újdonság a nyomtatványkitöltő programban.
On-Line Preferansz Követelményspecifikáció
On-Line Preferansz Követelményspecifikáció Verzió: 10 Dátum: 20080331 Készítette Név: Bálint Zsolt, Bartis Csaba Jóváhagyta Név: Dátum: 20080331 Dátum: Aláírás: Aláírás: Dátum: 20080331 Kovetelmeny Specifikaciodoc
Hiteles Elektronikus Postafiók
NISZ Nemzeti Infokommunikációs Szolgáltató Zrt. H-1081 Budapest, Csokonai utca 3. Hiteles Elektronikus Postafiók Tárhely adminisztráció 2018.05.07. v.1.2. TARTALOMJEGYZÉK 1. BEVEZETÉS... 3 2. BEJELENTKEZÉS
ADATSZOLGÁLTATÁS központi honlap használata esetén
ADATSZOLGÁLTATÁS központi honlap használata esetén 1. A 18/2005. IHM rendelet melléklete alapján össze kell állítani a közérdekű adatokat 2. Az elkészített dokumentumok feltöltése a központi honlapra:
GoWebeye Monitor Release 1.6.4 Üzenetküldés
GoWebeye Monitor Release 1.6.4 Üzenetküldés 1/10 Tartalom AZ ÜZENETVÁLTÁS MODUL... 3 AZ ÜZENETVÁLTÁS MODUL FUNKCIÓI... 3 AZ ÜZENETVÁLTÁS FOLYAMATA... 4 AZ ÜZENETVÁLTÁS MODUL FELÉPÍTÉSE ÉS HASZNÁLATA...
PC Connect. Unique ewsletter. program leírás
PC Connect Unique ewsletter program leírás Tartalomjegyzék Bevezető...- 1 - Előkészületek...- 2 - Alap adatok, alap fájlok...- 2 - A program használata...- 3 - E-mail files...- 3 - Swich text...- 4 - Settings...-
Tájékoztató a szakdolgozat elektronikus feltöltéséről
Tájékoztató a szakdolgozat elektronikus feltöltéséről Tisztelt hallgató mielőtt belekezd a szakdolgozata feltöltésébe az elektronikus felületen kérem, hogy figyelmesen olvassa el a tájékoztatót. Csak akkor
A mobil alkalmazás. Felhasználói útmutató - ios
Program megnevezése: Magyarország-Szlovákia Határon Átnyúló Együttműködési Program 2007-2013 Pályázat címe: HUSK JOBs portal Közös munkaerő-piaci információs rendszer A vezető partner: Centrum pokročilých
Felhasználói segédlet a Scopus adatbázis használatához
Felhasználói segédlet a Scopus adatbázis használatához Az adatbázis elérése, regisztrálás, belépés Az adatbázis címe: http://www.scopus.com Az adatbázis csak regisztrált, jogosultsággal rendelkező intézmények,
Órarendkészítő szoftver
SchoolTime Órarendkészítő szoftver 2.0 verzió Tartalomjegyzék: 1., Belépés a programba...3 2., Órarend főtábla...3 3., Tanátok...4 3.1., Új tanár felvitele, módosítása...4 3.2., Tanár törlése...4 3.3.,
Az ügyfélprogram és a ViCA applikáció használata. Bejelentkezés
Az ügyfélprogram és a ViCA applikáció használata Bejelentkezés A ViCA azonosító eszközzel kapcsolatos banki beállításokat követően, az OTPdirekt Electra Terminál programba kizárólag a másodlagos azonosításra
Jelentkezési lap képző szervek részére
Jelentkezési lap képző szervek részére Felhasználói segédlet Tartalomjegzék Belépés Jelentkezési lap felület Kézi kitöltés menete Alapadatok megadása Korábban megszerzett vezetői engedély adatai Személyes
DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció
H - 1161 Budapest Rákóczi út 76. Tel./Fax.: +36-1-4010159 http://www.pageos.hu [email protected] DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció A program használható a TOPOBASE
Belépés és regisztráció az ÉTDR-ben
Belépés és regisztráció az ÉTDR-ben Dr. Hegedűs Annamária Az ÉTDR bevezetése nagyban megkönnyíti az építési adminisztrációt. Írásunk a rendszer használatához nyújt gyakorlati útmutatót: Hogyan regisztrálhatunk
NAV felé történő számla adatszolgáltatás a Nagy Utazás 3 programmal
NAV felé történő számla adatszolgáltatás a Nagy Utazás 3 programmal 1. Központ képernyő beállítások A NAV webes felületén a Felhasználó regisztrációjakor megkapott Technikai felhasználó adatokat az Eszköz/Rendszeradatok/Központ
LETÉTKEZELŐ NYILVÁNTARTÁSI RENDSZER
LETÉTKEZELŐ NYILVÁNTARTÁSI RENDSZER Felhasználói kézikönyv a területi adminisztrátorok számára 1.2 verzió 2015.május 14. Dokumentum adatlap Projekt/modul megnevezése: Magyar Ügyvédi Kamara Letétkezelő
Elmib Önkormányzati hibabejelentő. Felhasználói kézikönyv v1.0
Elmib Önkormányzati hibabejelentő Felhasználói kézikönyv v1.0 Tartalom Az első belépés... 3 Regisztráció utáni első lépések... 4 Kezdő képernyő felépítése... 5 A hibabejelentő menü... 7 Új hiba bejelentése...
Póker szabályzat. Zsetonok értéke: Szürke 100 Piros 500 Kék 1'000 Zöld 2'500 Fekete 10'000. Kezdéskor kiosztott zsetonok összértéke: 40'000
Póker szabályzat Zsetonok értéke: Szürke 100 Piros 500 Kék 1'000 Zöld 2'500 Fekete 10'000 Kezdéskor kiosztott zsetonok összértéke: 40'000 Időbeosztás: Emelés 15 percenként, szünet 4 vakszintenként. 1.
Tanrend jelentő képző szervek részére
Tanrend jelentő képző szervek részére Felhasználói segédlet Tartalomjegyzék Belépés Tanrend jelentő felület Új tanrend jelentő Névsor megadása Névsor megadása jelentkezési lap alapján Névsor nyomtatása
TÁJÉKOZTATÓ a MicroSigner alapú alkalmazás használatáról
TÁJÉKOZTATÓ a MicroSigner alapú alkalmazás használatáról 1. MicroSigner alkalmazás igénylése A tagi hozzájárulás nyilatkozatok TIR-ben történő elektronikus aláírása a két módon lehetséges: 1. MicroSigner
Egyetemi könyvtári nyilvántartó rendszer
RENDSZERTERV Egyetemi könyvtári nyilvántartó rendszer A rendszer célja A projekt célja egy egyetemi könyvtár nyilvántartó rendszerének megtervezése. A legfőbb követelmény, amit a rendszerrel szemben támasztok,
Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv
Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési
Bóra Adatcsere. A webes modul működésének részletesebb leírását a csatolt dokumentum tartalmazza.
Bóra Adatcsere A Bóra Adatcsere a Bóra bérprogram webes modulja, ami a http://adatcsere.globo.hu címen érhető el. Természetesen a modult szeretnénk az Önök igényei alapján tovább fejleszteni, ezért kíváncsian
Felhasználói útmutató CVR mobil kliens, ios rendszerhez.
Felhasználói útmutató CVR mobil kliens, ios rendszerhez. Működési feltételek A felhasználói útmutató ios V7.0.4 verziószámú operációs rendszer felhasználásával készült. Az applikáció telepítése 1. Az App
Webes étkezés rendelés felhasználói kézikönyv
Webes étkezés rendelés felhasználói kézikönyv Tartalomjegyzék 1 Bejelentkezési képernyő... 2 1.1 Bejelentkezés menete... 2 1.2 Elfelejtett jelszó... 2 2 Főmenü... 3 3 Menüpontok... 3 3.1 Lemondás (pótrendelés)...
Black Jack A játék menete és további szabályok
Black Jack A játék menete és további szabályok Az Amerikai Black Jack nevű játékot 6 csomag 52 lapos francia kártyával kell játszani. A játék célja az, hogy a játékos a 21-es összértékhez minél közelebb
Regionális forduló november 18.
Regionális forduló 2017. november 18. 9-10. osztályosok feladata Feladat Egy e-mail kliens szoftver elkészítése lesz a feladatotok. Az elkészítendő alkalmazásnak az alábbiakban leírt specifikációnak kell
O365 és felhő szolgáltatások igénybevételéhez szükséges beállítások
F E L H A S Z N Á L Ó I L E Í R Á S O365 és felhő szolgáltatások igénybevételéhez szükséges beállítások BGF Informatikai Főosztály 2014. szeptember 24. H-1149 Budapest, Buzogány utca 11-13. www.bgf.hu
Playlist.hu Kiadói kézikönyv
Playlist.hu Kiadói kézikönyv Verziószám: 1.1.4. Dátum: 2010. október 13. Tartalomjegyzék Verziótörténet... 3 1. Bevezető... 4 2. Rendszerkövetelmények... 4 3. Bejelentkezés... 4 4. Regisztráció... 5 5.
2. Számlainformációk (a kiválasztott számlához kapcsolódó lekérdezések)
A DigiBank alkalmazás funkciói lehetõvé teszik a banki ügyfelek számára, hogy a számláikról, illetve egyéb banki tevékenységükrõl, az interneten keresztül a világháló bármely pontján aktuális információkat
Használati utasítás.
Lotus Notes Naptár Windows telefonra Használati utasítás. Írta: Varga Róbert 1 http://www.robertwpapps.uw.hu Bevezetés: Ezt az alkalmazást a fejlesztő saját használatra írta a teljesség igénye nélkül.
Taninform KIR kapcsolat
Taninform KIR kapcsolat Cél A Taninform KIR adatkapcsolat célja, hogy a mindkét rendszerben megtalálható és tárolt, iskolai adminisztrációval kapcsolatos alapadatokat az intézmények könnyen szinkronban
Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv
Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv Tartalomjegyzék 1. Symbian rendszer...2 1.1 Funkciók és követelmények...2 1.2 Telepítés és használat...2 2. Windows Mobile rendszer...6 2.1
DebitTray program Leírás
DebitTray program Leírás Budapest 2015 Bevezetés Egy-egy kintlévőséghez tartozó határidő elmulasztásának komoly következménye lehet. Éppen ezért a Kintlévőség kezelő program főmenü ablakában a program
Útmutató. Elektronikus ügyintézéshez a www.nebih.gov.hu oldalon. 2012. július 25. Oldal: 1 / 8
Útmutató Elektronikus ügyintézéshez a www.nebih.gov.hu oldalon 2012. július 25. Oldal: 1 / 8 Tartalomjegyzék I. Fontos tudnivalók... 3 II. Belépés a felületre... 3 III. E-ügyintézés... 4 1. Bizonylatkitöltés
ContractTray program Leírás
ContractTray program Leírás Budapest 2015 Bevezetés Egy-egy szerződéshez tartozó határidő elmulasztásának komoly gazdasági következménye lehet. Éppen ezért a Szerződés kezelő program főmenü ablakában a
Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft
Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül
FIR WEBMODUL ALKALMAZÁS DIÁKIGAZOLVÁNY IGÉNYLÉS
Educatio Társadalmi Szolgáltató Nonprofit kft. FIR WEBMODUL ALKALMAZÁS DIÁKIGAZOLVÁNY IGÉNYLÉS Felhasználói kézikönyv Dokumentum állapota: Tervezet Verzió: 0.1.0 Tartalomjegyzék 1. Bevezetés... 3 2. Bejelentkezés...
EKÁER használati utasítás
EKÁER használati utasítás Bevezetés A program célja, hogy könnyen, gyorsan és egyszerűen lehessen EKÁER számokat kérni, módosítani és véglegesíteni. A használatához be kell regisztrálni a NAV-os honlapon
Thermo1 Graph. Felhasználói segédlet
Thermo1 Graph Felhasználói segédlet A Thermo Graph program a GIPEN Thermo eszközök Windows operációs rendszeren működő grafikus monitorozó programja. A program a telepítést követően azonnal használható.
MÁV-START Tudáspróba Felhasználói kéziköny
MÁV-START Tudáspróba Felhasználói kéziköny Tartalomjegyzék Bejelentkezés a tudáspróbára... 3 Kijelentkezés... 3 Megkezdett tudáspróba folytatása... 4 Tudáspróba kiválasztása... 5 Tudáspróba kiválasztása...
Használati útmutató a NÚSZ Zrt. e-ügyfélszolgálat portál kezeléséhez
Használati útmutató a NÚSZ Zrt. e-ügyfélszolgálat portál kezeléséhez A NÚSZ Zrt., mint Szolgáltató az ematrica.nemzetiutdij.hu címen e-ügyfélszolgálati portált működtet. A portál szolgáltatásait a Felhasználó
Kezdő lépések. Céges email. Tartalom
Kezdő lépések Céges email Tartalom 1. Bevezetés...2 2. A szolgáltatás elérése és alapbeállításai...3 3. Ismerkedés a levelezővel...6 4. A levelező beállításai...8 5. Naptár... 10 6. Névjegyek... 11 7.
Samsung GT-S7230 (Wave 723) Exchange ActiveSync beállítása Virtualoso levelezésre
Samsung GT-S7230 (Wave 723) Exchange ActiveSync beállítása Virtualoso email levelezésre A következô lépések segítségével egyszerûen beállíthatja a Virtualoso email levelezést Samsung GT-S7230 készülékre.
MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.
Telefon: Fax: E-mail: (+36-1) 269-1642 (+36-1) 331 8479 [email protected] www.ex-lh.hu Eötvös József Főiskola 6500 Baja, Szegedi út 2. MŰSZAKI DOKUMENTÁCIÓ Aleph WebOPAC elérhetővé tétele okostelefonon Pályázati
az adatbevitel szabályozása, alapok
az adatbevitel szabályozása, alapok De, Tanító bácsi! Én úgy tudom, hogy ezt igazából, csak adatbázisban tudjuk megtenni! Hááát Ez igaz Pistike! Bár egy-két eszköz a táblázat-kezelő programban is a rendelkezésünkre
Az egységes BME egyetemi TDK portál használata. 1. rész
Az egységes BME egyetemi TDK portál használata 1. rész Készítette: Dr. Iváncsy Renáta 2012.09.20. Jelen dokumentum röviden összefoglalja, hogy milyen lépéseken keresztül tud egy hallgató dolgozatot regisztrálni
Vonalkód olvasó rendszer. Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1]
Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1] T a r t a l o m j e g y z é k 1 Bevezetés... 3 1.1 A rendszer rövid leírása... 3 1.2 A dokumentum célja... 3 1.3 A rendszer komponensei... 3 1.4
Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0
Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Ön letölthető fájl tartalmazza az Evolut Főkönyv 2013. program telepítőjét. A jelen leírás olyan telepítésre vonatkozik, amikor Ön
PwC EKAER Tool felhasználói leírás. 2015. május
www.pwc.com/hu/ekaer PwC EKAER Tool felhasználói leírás 2015. május Tartalom Bejelentések létrehozása 3 1. A forrás Excel állomány kitöltése 3 2. A forrás Excel állomány mentése 4 A szükséges mezők kitöltését
ADATSZOLGÁLTATÁS webes metaadat-szerkesztővel
ADATSZOLGÁLTATÁS webes metaadat-szerkesztővel A. központi OAI szerver igénybe vétele esetén A regisztráció elfogadását követően az adminisztrációs felületen a Webes metaadat szerkesztő funkciót kell kiválasztani:
Felhasználói Kézikönyv
Felhasználói Kézikönyv Az eforte 5.0 e-időpont Modul használatához 1 T a r talomjegyzék 1. BEVEZETÉS... 3 1.1. ÁLTALÁNOS TUDNIVALÓK A KÉZIKÖNYVRŐL... 3 1.2. SZÜKSÉGES TECHNIKAI KÖRNYEZET A RENDSZER HASZNÁLATÁHOZ...
CareLink Personal telepítési útmutató. Első lépések a CareLink Personal adatfeltöltéshez
CareLink Personal telepítési útmutató Első lépések a CareLink Personal adatfeltöltéshez A CareLink USB illesztőprogram telepítése A CareLink USB illesztőprogramot telepíteni kell. Ez az illesztőprogram
Nokia N97_mini (Mail for Exchange) beállítása Virtualoso email levelezésre
Nokia N97_mini (Mail for Exchange) beállítása Virtualoso email levelezésre A következô lépések segítségével egyszerûen beállíthatja a Virtualoso email levelezést Nokia N97_mini készülékre. Az alkalmazás
SZAK- ÉS DIPLOMADOLGOZAT FELTÖLTÉSI ÚTMUTATÓ /HALLGATÓKNAK/ Készítette: Tóth Csilla, Farkas Renáta Egyetemi Könyvtár
SZAK- ÉS DIPLOMADOLGOZAT FELTÖLTÉSI ÚTMUTATÓ /HALLGATÓKNAK/ 2018 Készítette: Tóth Csilla, Farkas Renáta Egyetemi Könyvtár Tartalom A felület elérése... 3 Bejelentkezés... 3 Dolgozat feltöltése... 5 Dolgozat
Ügyfélkapuból hivatalos ügy indítása
Ügyfélkapuból hivatalos ügy indítása A Somogy Megyei Kormányhivatal az elektronikus ügyintézést az e-papír szolgáltatás segítségével biztosítja. Az e-papír űrlapokat folyamatosan fogadja a hivatali kapuján,
Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról
Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról Felhasználói Segédlet MICROSEC Kft. 1022 Budapest, Marczibányi tér 9. telefon: (1)438-6310 2002. május 4. Tartalom Jelentés készítése...3 Új
CIB Internet Bank asztali alkalmazás Hasznos tippek a telepítéshez és a használathoz Windows operációs rendszer esetén
CIB Internet Bank asztali alkalmazás Hasznos tippek a telepítéshez és a használathoz Windows operációs rendszer esetén A CIB Internet Bankba való webes felületen keresztül történő belépés az Oracle által
A mobil alkalmazás. Felhasználói útmutató - Android
Program megnevezése: Magyarország-Szlovákia Határon Átnyúló Együttműködési Program 2007-2013 Pályázat címe: HUSK JOBs portal Közös munkaerő-piaci információs rendszer A vezeto partner: Centrum pokročilých
Samsung GT-S7230 (Wave 723) Exchange ActiveSync beállítása Virtualoso levelezésre
Samsung GT-S7230 (Wave 723) Exchange ActiveSync beállítása Virtualoso email levelezésre A következô lépések segítségével egyszerûen beállíthatja a Virtualoso email levelezést Samsung GT-S7230 készülékre.
Póker Kombinációk (a legmagasabbtól a legalacsonyabbig)
Póker Kombinációk (a legmagasabbtól a legalacsonyabbig) 1. Royal Flush 6. Straight (Sor) 2. Straight Flush 7. Three of a kind (Drill) 3. Four of a kind (Póker) 8. Two pair (Két pár) 4. Full house 9. One
Felhasználói leírás a DimNAV Server segédprogramhoz ( )
Felhasználói leírás a DimNAV Server segédprogramhoz (1.1.0.3) Tartalomjegyzék Bevezetés...3 1. Telepítés...3 2. Eltávolítás...4 Program használata...5 1. Kezdeti beállítások...5 2. Licenc megadása...6
NightHawk AccessControl
NightHawk AccessControl Poker Edition Version: 2.0 2012. január 1 Tartalomjegyzék Rendszer elemei... 3 Felhasználói felület... 3 Nap nyitása, zárása... 4 Új játékos felvitele... 4 Ki és beléptetés... 5
BaBér bérügyviteli rendszer telepítési segédlete 2011. év
BaBér bérügyviteli rendszer telepítési segédlete 2011. év Ajánlott konfiguráció A program hardverigénye: Konfiguráció: 2800 MHz processzor 512 Mbyte memória (RAM) / Szerver gépen 1G memória (RAM) Lézernyomtató
HVK Adminisztrátori használati útmutató
HVK Adminisztrátori használati útmutató Tartalom felöltés, Hírek karbantartása A www.mvfportal.hu oldalon a bejelentkezést követően a rendszer a felhasználó jogosultsági besorolásának megfelelő nyitó oldalra
KFKI Unified Messaging Server (UMS) Felhasználói Útmutató
KFKI Unified Messaging Server (UMS) Felhasználói Útmutató Bemutató Az UMS Egységes Üzenetkezelő Rendszer hang- és faxüzenetek fogadására és faxüzenetek küldésére alkalmas. Felhasználói weboldal Elérhetőség
Bejelentkezés az egyetemi hálózatba és a számítógépre
- 1 - Bejelentkezés az egyetemi hálózatba és a számítógépre 1. lépés: az Egyetem Novell hálózatába történő bejelentkezéskor az alábbi képernyő jelenik meg: az első sorban a felhasználónevet, a második
Online adatszolgáltatás beállítása a Kettős könyvelés programban (WUJEGYKE) 79/
Online adatszolgáltatás beállítása a Kettős könyvelés programban (WUJEGYKE) 1. Menüpont A Kettős könyvelés (WUJEGYKE) programban az online adatszolgáltatáshoz kapcsolódó beállítás egy új menüpontba, a
Vectory telepítési útmutató
Vectory telepítési útmutató A vectory kliens programja egy vyw.exe valamint egy bejelentkezes.ini nevű fájlból áll. A vyw.exe-nek és a bejelentkezes.ini-nek egy közös könyvtárba kell kerülniük. Könyvtárak,
OTP Portálok. Felhasználói útmutató magánszemélyek részére. OTP Egészségpénztár OTP Nyugdíjpénztár OTP SZÉP Kártya OTP Cafeteria Nyilatkoztató
OTP Portálok Felhasználói útmutató magánszemélyek részére 2017 Készítette: Konyicsák Zoltán 1. Néhány szó az OTP Portálok programról Az OTP Portálok honlapon az OTP Pénztárszolgáltató Zrt., az OTP Nyugdíjpénztár,
Ismertető az Electro Kontroll Bt. által készített felügyeleti szoftverről A felügyeleti szoftver az épületben található tűzjelző rendszer jelzéseinek grafikus megjelenítését végzi. A program által adott
Megrendelés menete. 1. Válassza ki az Ön igényeinek megfelelő terméket!
Megrendelés menete 1. Válassza ki az Ön igényeinek megfelelő terméket! 2. A megvásárolni kívánt terméket helyezze a kosárba! ( Kosárba kifejezésre kattintva.) 3. Amennyiben szeretne további terméket kosárba
