BPROF:2dm
Ez a szócikk a "Rendszertervezés" tantárgy keretében keletkező dokumentum, mely része a szakdolgozat mellékleteinek.
Tartalomjegyzék
Fogalmak
(potenciális változók a kódhoz)
- puzzle: X-szer Y-os háló, melyben a sorfejléc (X) és oszlopfejléc (Y) attribútumok alapján kell elhelyezni az odaillő képet
- X(i):
- Y(j):
- válaszkártya(k):
- megoldástér(i,j,k):
- keretrendszer: puzzle megjelenítő szoftver
- log: minden tevékenység (pl. egérmozgás, billentyű-leütés, billentyű-kombináció) feljegyzése egy fájlban, dátummal felcímkézve (vö. https://miau.my-x.hu/mediawiki/index.php/Excel-makro#Tanfolyami_vez.C3.A9r-feladatok)
- kiértékelés:
Megrendelői kezdeményezés
Létezik egy 2DM-játék (https://miau.my-x.hu/miau/254/2dm_kemia_demo/), amelyben a feladat egy 3x3-as* hálóban különféle képeket elhelyezni az oszlop- és sor-fejlécek alapján. A létező 2DM-játék log-ja a vágólapra keletkezik a JavaScript lehetőségei mentén. Az új rendszerben a sebezhetőségek minimalizálása, csalás minden mennyiségű kizárása a cél.
Feladat:
- Új játék tervezését és
- futtatását támogató keretrendszer kialakítása úgy, hogy
- a keretrendszer támogassa a teszt megtervezését,
- az adat-megjelenítést/adatbevitelt,
- a teszt megírását és
- a log-elemzést (vö. https://miau.my-x.hu/mediawiki/index.php/Excel-makro - Tanfolyami vezérfeladat).
- a keretrendszer által olyan output kialakítása, mely a jelenlegi 2DM-megoldás által azonnal futtatható
Nem feladat:
- online kollaboratív munka támogatása
- adatbázis-alapú megoldás kialakítása
Jelenlegi 2DM játék
adatstruktúrája
A jelenleg már elkészült 2DM játék adatbeolvasását,adatstruktúráját ki kell nyomozni annak érdekében, hogy a dolgozatban készülő játék kompatibilis lehessen vele.
Nyomozás lépései:
1. https://www.cyotek.com/downloads/info/setup-cyowcopy-1.9.0.822-x86.exe alkalmazás segytségével letöltöttem a https://miau.my-x.hu/miau/271/2dm/ weboldal összes fájlját.
2. letöltött adatok:
- img/ - 00m.png - 03-00.png - 03-30.png - 03-49.png - 03h.png - 12-00.png - 12-30.png - 12-49.png - 12h.png - 18-00.png - 18-30.png - 18-49.png - 18h.png - 30m.png - 49m.png - AD_CLOCK.jpg - auth.png - auth_alairas.png - auth_arc.png - auth_dns.png - auth_gepeles.png - auth_hang.png - auth_irisz.png - auth_kez.png - auth_retina.png - auth_ujj.png - BLANK_BLANK.png - BLANK_C1.png - BLANK_C2.png - BLANK_C3.png - BLANK_R1.png - BLANK_R1_BLANK_C1.png - BLANK_R1_BLANK_C2.png - BLANK_R1_BLANK_C3.png - BLANK_R2.png - BLANK_R2_BLANK_C1.png - BLANK_R2_BLANK_C2.png - BLANK_R2_BLANK_C3.png - BLANK_R3.png - BLANK_R3_BLANK_C1.png - BLANK_R3_BLANK_C2.png - BLANK_R3_BLANK_C3.png - BRW.png - circle.png - COIN_1E.png - COIN_20C.png - COIN_2C.png - COLOR_DOT.jpg - COLOR_FLAG.jpg - COLOR_SHAPE.jpg - COLOR_TETRIS.jpg - DIR_B.png - DIR_BC.png - DIR_BL.png - DIR_BR.png - DIR_C.png - DIR_L.png - DIR_M.png - DIR_MC.png - DIR_ML.png - DIR_MR.png - DIR_R.png - DIR_T.png - DIR_TC.png - DIR_TL.png - DIR_TR.png - dot_1.png - dot_2.png - dot_3.png - EUR_COIN.jpg - favicon.ico - flag1.png - flag1_BRW.png - flag1_GRW.png - flag1_GRY.png - flag2.png - flag2_BRW.png - flag2_GRW.png - flag2_GRY.png - flag3.png - flag3_BRW.png - flag3_GRW.png - flag3_GRY.png - FLAG_IRL.png - FLAG_SMR.png - FLAG_SVK.png - FRENCH_CARD.jpg - GRW.png - GRY.png - hearts.png - hearts_jack.png - hearts_king.png - hearts_queen.png - hexagon.png - IRL_1E.png - IRL_20C.png - IRL_2C.png - jack.png - king.png - LArrow.png - logo.jpg - pikes.png - pikes_jack.png - pikes_king.png - pikes_queen.png - queen.png - RArrow.png - SMILEY_DIR.jpg - SMR_1E.png - SMR_20C.png - SMR_2C.png - SVK_1E.png - SVK_20C.png - SVK_2C.png - tetris_1.png - tetris_11.png - tetris_12.png - tetris_13.png - tetris_2.png - tetris_21.png - tetris_22.png - tetris_23.png - tetris_3.png - tetris_31.png - tetris_32.png - tetris_33.png - tiles.png - tiles_jack.png - tiles_king.png - tiles_queen.png - triangle.png - TTT_E1.png - TTT_E2.png - TTT_E3.png - TTT_M1.png - TTT_M2.png - TTT_M3.png - card-design.css - carousel.js - gameProperties.js - gameScreenEvents.js - index.htm - index.js - style.css - util.js
lehetőség a webes rendszerbe való fejlesztéshez(???)
itt ebben ha megvaltoztatom a COLOR_GREEN_DOT_1 -eket COLOR_GREEN_DOT_2 -re, akkor at fog váltani 2 pöttyre, és a játék el fogja fogadni amikor odahúzom a 2 pöttyös zöld mezőbeRendszer megrendelővel egyeztetett követelményei
optimális (tesztelt):
- windows 11
- Intel Core i5 11th gen
- 16GB ram
választott technológiák:
- Programnyelv: C#
- Adattárolás: JSON
Egyéb funkciók
- UI személyre szabása előre elkészített, akár a felhasználók által személyre szabott téma segítségével
(színvilág/színharmónia nem ellenőrzött, a téma tervezőjének kell figyelnie arra, hogy a felhasznált színek nem olvadnak egybe egymással)
- nyelvek támogatása, akár a felhasználók által definiált szótár segítségével
(szótár helyessége nem ellenőrzött, nincs kizárva akár a halandzsa nyelv használata sem)
Folyamatábrák
Kvíz tervezésének folyamatábrája:........
Kvíz megírásának folyamatábrája:........
Kvíz kiértékelésének folyamatábrája:........
Rendszer specifikáció
Ajánlott irodalom/demo/minta: http://centroszet.hu/tananyag/ - pl. http://centroszet.hu/tananyag/szervezes2/615_rszletes_rendszerterv.html
Logikai rendszerterv
Fizikai rendszerterv
Program specifikáció
Program célja
UI tervek
Adattárolás
A keretrendszer az adatokat .json fájlokban tárolja.
ezek: a beállítási adatok (téma,nyelv alapbeállítások), teszt adatok (kérdés,válasz lehetőségek)
"puzzles": [ { "question": "value", "correctGridOrder": { "1": "C:/Users/x/Y/kep1.png", "2": "C:/Users/x/Y/kep2.png", "3": "C:/Users/x/Y/kep3.png", "4": "C:/Users/x/Y/kep4.png", "5": "C:/Users/x/Y/kep5.png", "6": "C:/Users/x/Y/kep6.png", "7": "C:/Users/x/Y/kep7.png", "8": "C:/Users/x/Y/kep8.png", "9": "C:/Users/x/Y/kep9.png" } },… ]
Indoklás:
A JSON fájlok egyszerű olvashatósága, értelmezhetősége miatt bárki létre tud hozni saját témát, nyelv sémát.
Alternatív megoldások elvetésének indoklásai:
- Egyszerű txt fájlok is megfelelőek a feladatra, ám a JSON fájltípus által biztosított kulcs-érték adatszerkezet nagy segítséget nyújt a fájl manuális átláthatóságához, illetve a programmal való feldolgozhatósághoz.
- ...
Fejlesztői saját 2DM-játékok
A fejlesztés során az alábbi tartalmi kihívások
1. játék
- X=3
- X1=...
- X2=...
- X3=...
- Y=3
- Y1=...
- Y2=...
- Y3=...
- válaszkártyák (9=3*3)
- ...
- ...
- ...
- ...
- ...
- ...
- ...
- ...
- ...
i. játék
- X>3
- Y>3
- X<>Y
Ötletek
- Github-on puzzle katalógus repo, amibe bárki bele tud committolni. (A dolgozatíró jóváhagyásával)
- Ezt fetchelne az alkalmazás és így ott is meg tudna esetlegesen jelenni egy külön marketplace nézet, és innen lehetne aktiválni egy egy témát.
- puzzle inditasakor a puzzlet letrehozo szemely által elvárt azonosító input (neptun kod,nev,becenév stb (nem kell ezzel foglalkoznom h valid-e,mert nekem elég ha egy string az output))- Ez is belekerülne a logfajlba, mely segítené a teszt írójának beazonosítását.
- előző ellentéte: puzzle anonim leadásának lehetősége
- puzzle kiértékelése a tanár részéről:
- output fajlokat osszeszedi (nem erdekel, hogy hogyan, emaillel beküldik a diákok stb….), és beolvastatja a programmal, ami csinal egy egyszeru excel táblát, akár kimutatásokkal
- puzzlek között lépkedni lehet előre hátra, ha van több puzzle (ezt a puzzle szerkesztője engedélyhezheti/tilthatja le)
- teszt folytatasanak engedelyezese is tanartol fuggjon, logolva lesz a szüneteltetés
- tesztben a kép pathje nem képre mutat,hanem egy más fajta fájlra, akkor ezt le kell kezelni (ilyen hiba case-eket ki kell listázni, és ki kell küszöbölni)
- más, nem 3x3-mas teszt használatát engedélyezni*
logger teszt irása közben:
logolni fogja a szoftver a user általi: alkalmazás váltást, alkalmazás minimalizálást, és az ezekhez tartozó időpontot is log az egyenlore egy txt fajl “log {timeOfStart}.txt”