Csoport neve: Segmentation_Fault
Feladat sorszáma: 6
Feladat címe: Stratégiai játék
Analízis modell
Gyakorlatvezető::
Repási Tibor

Csoport tagok:
|
Turai Attila |
j74x9i |
turai1@iit.uni-miskolc.hu |
|
Hadházi Csaba |
uvbydq |
hadhazi1@iit.uni-miskolc.hu |
|
Keserű János |
iu84y5 |
keseru@iit.uni-miskolc.hu |
|
Petrik András |
f3zyt9 |
petrik3@iit.uni-miskolc.hu |
|
Sebe György |
ozj1fr |
sebe2@iit.uni-miskolc.hu |
2006.04.21
Történet
|
Dátum |
Verzió |
Leírás |
Szerző |
|---|---|---|---|
|
2006.04.08. |
0.1 |
Kezdeti verzió |
Segmentation_Fault |
|
2006.04.18. |
1.0 |
2. Kezdeti osztálydiagram |
Hadházi Csaba, |
|
2006.04.21. |
1.1 |
Alrendszerek módosítása |
Turai Attila, |
| 2006.04.21. | 1.2 |
5. Graphics System
alrendszer modellje |
Keserű János, Petrik András, Sebe György, Turai Attila |
| 2006.04.21. | 1.3 |
4. Audio System alrendszer modellje |
Sebe György |
| 2006.04.21. | 1.4 |
6. Game Core alrendszer modellje | Keserű János, Petrik András |
| 2006.04.21. | 1.5 | 1. Bevezetés |
Turai Attila |
| 2006.04.21. | 2.0 |
A dokumentum
véglegesítése. |
Segmentation_Fault |
2.1. Osztálydiagram
2.2.
Osztályok felsorolása
2.3.
Alrendszerek
3. Network System alrendszer modellje
3.1.1. Kapcsolatok
pontosítása
3.1.2. Attribútumok azonosítása
3.1.3. Bázisosztályok keresése
3.5. Az analízis modell osztálydiagramja.
3.6. Az analízis modell osztályainak listája.
4. Audio System alrendszer modellje
4.1.1. Kapcsolatok
pontosítása
4.1.2. Attribútumok azonosítása
4.1.3. Bázisosztályok keresése
4.5. Az analízis modell osztálydiagramja.
4.6. Az analízis modell osztályainak listája.
5. Graphics System alrendszer modellje
5.1.1. Kapcsolatok
pontosítása
5.1.2. Attribútumok azonosítása
5.1.3. Bázisosztályok keresése
5.5. Az analízis modell osztálydiagramja.
5.6. Az analízis modell osztályainak listája.
6. Game Core alrendszer modellje
6.1.1. Kapcsolatok
pontosítása
6.1.2. Attribútumok azonosítása
6.1.3. Bázisosztályok keresése
6.5. Az analízis modell osztálydiagramja.
6.6. Az analízis modell osztályainak listája.
6.6.1. Controller
6.6.2. FileHandler
6.6.3. Unit
Ez a dokumentum felelős azért, hogy
birokoljuk azt az információhalmazt, amely ahhoz szükséges, hogy
függvénykönyvtáraink implementálása már minden akadálytól mentes legyen.
A dokumentumban felépitettük az osztályaink szerkezetét, viselkedést
külöböző típusú diagrammok segítségével. A dokumentumban alrendszerekre
bontva található meg osztályaink leírása, osztályterveink.

A központi vezérlő osztály. Az összes
többi objektum rajta kersztül végez adatcserét. Kezdettől fugva fut és
ő pédányosítja az osztályok nagy részét. A program fő változói és az
azokon manipuláló függvények részei az osztálynak.
A grafikus megjelenítésért felelős osztály. Alapvető rajzoló és textúrákat megjelenítő függvények feglalnak benne helyet. A metódusai a grafikus megjelenítés egy-egy részfunkcióját valósítják meg.
A hálozati kapcsolat felépítéséért és az
azon keresztüli információcseréért felel. A bejövő információkat a
Controllernek továbbítja.
A fájlműveletekért felel. Ment, létrehoz,
módosít fájlokat. Elvégzi a játékállapot lementését, betöltését,
illetve a konfigurációs fájl(ok) módosítását.
Külön szálon fut. Biztosítja a
háttérzenét, és a különböző események által igényelt hangokat
megszólaltaja. Az egységek esetén egy, az egységre jellemző hangminta
halmazból választ, és véletlenszámgenerátor segítségével egy hangmintát
megszóaltat.
A jaték főmenüét valósítja meg. A
felhasználó egy menürendszerből választhatja ki, hogy mit kívan tenni.
A menü a Felhasználói
kézikönyvben leírt menürendszerrel egyezik meg, az ehhez kapcsolódó
metódusok és adattagok szerepelnek benne.
- City Screen : A Város fejlesztése
és az egységek gyártása,csapatba szervezése.
- Battle Screen : Csata lebonyolítása.
- Platoon Screen : Csapat átszervezés,összevonás és menedzselés.
Az egységek megvalósításáért felel.
Felépítése egy osztályhierarchia, amelyben az egyes alosztályok
egységeket reprezentálnak. Az ősosztályban már megjelennek a közös
adattagok és alapvető függvények, amelyek folyamatosan bővülnek a
hierarchiában lefelé haladva.







| Név |
Típus |
Leírás |
| socket_id |
int |
A sucket azonosítója. |
| host |
char ** |
Az ellenfél hostjának(jainak) az
azonosítója. |
| port |
int |
Port száma. |
| change_struct |
struct |
Üzenet struktúra megvalósítása,
amely a változásokat tartalmazza. |
| Név |
Argumentumok |
Leírás |
| open_socket |
- |
Socket létrehozása. |
| connect |
- | Kapcsolat létrehozása hosttal. |
| send |
- | Üzenet küldése. |
| close_socket |
- | Socket bezárása. |
| receive |
- | Üzenet olvasása a socket-ból. Ő
valósitja meg az interface-t a Controller osztállyal. |
| networks |
host, port |
Konstruktor. A host név és a
port béállítása. |





| Név |
Típus |
Leírás |
| fajlkod |
int |
A betöltendő zene kódja, ami
konkrét fájlnak felel meg. |
| Név |
Argumentumok |
Leírás |
| click |
- |
Egérklikk hang lejátszása. |
| environment |
fajlkod |
Környezet hanghatásainak a
betöltése. (pl. víz, szél, homokvihar stb.) |
| music |
fajlkod |
A játék zenéinek lejátszása. |
| voice |
fajlkod |
A játék egységei hangjainak
lejátszása. (pl, lövés, mozgás, kijelölés stb.) |









| Név |
Típus |
Leírás |
| - |
- |
- |
| Név |
Argumentumok |
Leírás |
| show_screen |
- |
A FightChangeScreen képernyő
kirajzolása. |
| Név |
Típus |
Leírás |
| - |
- |
- |
| Név |
Argumentumok |
Leírás |
| create |
mit, mennyit |
Mit paraméterben kapott egységet
legyártja mennyit életerővel. |
| develop |
- |
A város maturity értékét növeli
10%- al, és csökkenti a vizet x egységgel. |
| send_commando |
- |
Létrehoz egy új csapatot és
beletölti az egységeket. |
| send_unit |
mit |
Városon belüli csapatba helyezi
az egységet. |
| Név |
Típus |
Leírás |
| csapat1 | int |
Az egyik csapat azonosítója. |
| csapat2 |
int |
Az masik csapat azonosítója. |
| Név |
Argumentumok |
Leírás |
| ChangeScreen |
csapat1, csapat2 |
Beállítja melyik az a két
csapat, amik között lezajlik az egységcsere. |
| move |
egyseg, hova |
Mozgatja a paraméterül kapott
egységet az egyik csapatból a másikba. |
| Név |
Típus |
Leírás |
| - |
- |
- |
| Név |
Argumentumok |
Leírás |
| FightScreen |
csapat1, csapat2 |
Beállítja melyik az a két
csapat, amik között lezajlik a csata. Az egyik csapat természetesen lehet féreg is. |
| attack |
tamodaok |
A csata lebonyolításáért felel. |
| Név |
Típus |
Leírás |
| - |
- |
- |
| Név |
Argumentumok |
Leírás |
| MainMenu |
menu_tipus |
A menü felépítésért és
lebonyolításáért felel. |
| ~MainMenu |
- |
A menü lebontását bonyolítja le. |
| exit |
- |
A program szabályos lezárását
segíti elő. |
| Név |
Típus |
Leírás |
| - |
- |
- |
| Név |
Argumentumok |
Leírás |
| homok_szikla_viz_kirajzolo |
- |
A homokot, a sziklát és forrást
rajzolja ki. |
| mozgo_objektum_kirajzolo |
- |
A mozgó objektumokat jeleníti
meg. |
| kijeloles |
- |
Az egység kijelőlésénél a
kijelölést jelző grafikát jeleníti meg. |
| vonal_huzas |
- |
A mozgás kijelőlésének
jelőlésére egy vonalat húz az adott pontra. |
| hud_rajzolo |
- |
A hud-ot építi fel és kezeli. |
| map_rajzolo |
- |
A térképet rajolja ki. |
| uzenet_kiiro |
- |
A játék és más felhasználó által
küldött üzeneteket jeleníti meg. |
| kor_kiiro |
- |
Kiírja hanyadik körben járunk. |
| viz_kiiro |
- |
A kitermelt víz mennyiségét
frissíti. |



| Név |
Típus |
Leírás |
| map_matix |
struct ** |
A játékteret tárolja. |
| turn_counter |
int |
Körök számát tárolja. |
| system_variables |
struct |
A program beállításait tároló
struktúra. |
| Név |
Argumentumok |
Leírás |
| send_turn_data |
package |
Kör adatainak elküldése a
hálózati osztály segítségével. |
| get_turn_data |
- |
Kör adatainak lekérése a
hálózati osztálytól. |
| play_music |
- |
Véletlenszerű zene lejátszása az
audio osztály segítségével. |
| draw_sceen |
- |
Képernyő kirajzoltatása a
graphics osztállyal. |
| redraw_sceen |
- |
Képernyő változásainak
újrarajzolása |
| generate_storm |
- |
Vihar generálása. |
| create_unit |
type |
Egység létrehozása |
| load_map |
level_name |
Játékállás/térkép betöltése a
FileHandler-en keresztül |
| save_map |
- |
Játékállás lementése |
| draw_city_screen |
city_data |
Város képernyő kirajzolása |
| draw_change_screen |
platoon1, platoon2 | Change Screen kirajzolása |
| draw_fight_sceen |
platoon1, platoon2 | Csata képernyő kirajzolása |
| accomplish_turn |
- |
Kör végrehajtása |
| init_game |
- |
Játék inicializálása |
| Név |
Típus |
Leírás |
| file_resource |
File * |
Megnyitott file azonosítója |
| Név |
Argumentumok |
Leírás |
| FileHandler |
file_tipus |
Konstruktor új file
létrehozásához |
| FileHandler | file_nev |
Konstruktor meglévő filehoz |
| betoltes |
- |
betölti a játkállást és pályát a
fileból |
| mentes |
- |
lementi a játékállást |
| torles |
- |
letörli az aktuális filet |
| Név |
Típus |
Leírás |
| pozx |
int |
egység x koordinátája |
| pozy |
int |
egység y koordinátája |
| life |
int |
egység életereje / víz mennyisége |
| Név |
Argumentumok |
Leírás |
| Unit |
x, y, life |
konstruktor |
| get_x |
- |
x koordináta lekérése |
| get_y |
- |
y koordináta lekérése |
| set_x |
x |
x koordináta beállítása |
| set_y | y |
y koordináta beállítása |
| get_life |
- |
életerő lekérése |
| set_life |
life |
életerő beállítása |
| alter_life |
life, increment |
életerő növelése/csökkentése |
| Név |
Típus |
Leírás |
| attack_points |
int |
támadási érték |
| defense-points |
int |
védekezési érték |
| speed |
int |
sebesség |
| Név |
Argumentumok |
Leírás |
| MovingUnits |
x, y, life |
- |
| get_attack_points |
- |
támadási érték lekérése |
| inc_attack_points | inc |
paraméterrel növeli az
attack_points értékét |
| get_defense_points | - |
védekezési érték lekérése |
| inc_defense_points | inc |
paraméterrel növeli az defense_points értékét |
| Név |
Típus |
Leírás |
| - |
- |
- |
| Név |
Argumentumok |
Leírás |
| move |
- |
véletlenszerű érték és irány
szerinti mozgás elvégzése |
| Név |
Típus |
Leírás |
| units |
Unit ** |
tartalmazott egységek pointereit
tartalmazó tömb |
| Név |
Argumentumok |
Leírás |
| get_units |
- |
a units tömbbel tér vissza |
| Név |
Típus |
Leírás |
| maturity |
int |
fejlettséget reprezentáló érték |
| Név |
Argumentumok |
Leírás |
| get_maturity |
- |
maturity értékével tér vissza |
| set_maturity |
maturity |
maturity értékét állítja be |