Difference between revisions of "LU-LSP-b11:projekts"
Line 59: | Line 59: | ||
Klients -> serverim |
Klients -> serverim |
||
* S - start game Parametri: |
* S - start game Parametri: nav |
||
* E - disconnect (end game) Parametri: |
* E - disconnect (end game) Parametri: nav |
||
* G - go Parametri: virziens (U, B, L, vai R burti) |
* G - go Parametri: virziens (U, B, L, vai R burti) |
||
* F - shoot (fire) Parametri: |
* F - shoot (fire) Parametri: nav |
||
* T - stobra |
* T - stobra kustība (turret movement) (opcionāls) Parametri: virziens (U, B, L, vai R burti) |
||
Serveris -> klientam |
Serveris -> klientam |
||
Line 71: | Line 71: | ||
Kartes lauciņi var būt: |
Kartes lauciņi var būt: |
||
* šķērslis (necaurejams tankiem) - O |
* šķērslis (necaurejams tankiem, obstacle) - O |
||
* masīvs šķērslis (necauršaujaums & necaurejams tankiem) - X |
* masīvs šķērslis (necauršaujaums & necaurejams tankiem) - X |
||
* ceļš - R |
* ceļš (road) - R |
||
* zāle |
* zāle (grass, kustība notiek 2x lēnāk, nekā pa ceļu) (opcionāls) - G |
||
* purvs (kustība notiek 5x lēnāk, nekā pa ceļu) (opcionāls) - S |
* purvs (swamp, kustība notiek 5x lēnāk, nekā pa ceļu) (opcionāls) - S |
||
Map info komandas |
Map info komandas parametri: |
||
* Kartes dimensijas: divi skaitļi N (platums) un M (augstums). |
* Kartes dimensijas: divi skaitļi N (platums) un M (augstums). |
||
* NxM burtus gara karte ar terrain type. piemēram: "R R R R X R ...". Karti sūta, sākot no augšējās rindas, no kreisās puses uz labo. |
* NxM burtus gara karte ar terrain type. piemēram: "R R R R X R ...". Karti sūta, sākot no augšējās rindas, no kreisās puses uz labo. |
||
* Nenoteikta garuma saraksts ar objektiem. Objekts tiek aprakstīts šādi: |
* Nenoteikta garuma saraksts ar objektiem. Objekts tiek aprakstīts šādi: |
||
"O-burts Tips X-koordināta Y-koordināta |
"O-burts Tips X-koordināta Y-koordināta [citi paramteri]" |
||
Tips: |
Tips: |
||
* T - tanks |
* T - tanks |
||
* S - shot (šāviņš) |
* S - shot (šāviņš) |
||
"Citus parametrus" norāda tikai tankam. Tie ir: |
|||
* Tanka īpašnieka IP adrese un ports |
|||
* Tanka virziens (U, B, L, R) |
|||
* Tanka stobra virziens (U, B, L, R) |
|||
* Health-status (0-100%) |
|||
Objekta piemērs: |
Objekta piemērs: |
||
"O T 1 2 100" - tanks lauciņā (1,2) ar 100% veselību. |
"O T 1 2 10.0.0.1 33780 L L 100" - tanks lauciņā (1,2), piederošs klientam ar adresi 10.0.0.1 un portu 33780, pavērsts pa kreisi, ar stobru pavērstu pa kreisi, ar 100% veselību. |
||
Koordināta 0 0 atbilst augšējam kreisajam stūrim. |
Koordināta 0 0 atbilst augšējam kreisajam stūrim. |
Revision as of 16:52, 20 December 2011
Uzdevums: izstrādāt koncepciju un arhitektūru klienta-servera sistēmai, kas realizē daudzlietotāju vidi reālā laika stratēģiskai datorspēlei "Tanciņi".
Serveris
Serverim jābūt savietojamam ar kopējo komunikācijas protokolu - tā, lai visu grupu klienti varētu pie tā slēgties!
Serveris spēj saņemt šādas komandas:
- ?
Serveris var nosūtīt šādas komandas:
- ?
Ir pasaules karte ar NxM šūnām. Katrā šūnā var būt:
- ?
Servera programmā ir "galvenais cikls" (while (1)
vai for (;;)
), tajā notiek:
- ?
Serveris uztur informāciju par klientiem:
- ?
Klients
Klientam jābūt savietojamam ar kopējo komunikācijas protokolu - tā, lai tas spētu slēgties pie visu grupu serveriem!
Klients spēj saņemt šādas komandas:
- ?
Klients var nosūtīt šādas komandas:
- ?
Klienta programmā ir "galvenais cikls", tajā notiek:
- ?
Direktorijas serveris
Uztur informāciju par aktīvajiem serveriem:
- ?
Datu apmaiņas protokols
Izmanto TCP protokola soketus, ports 1337.
ASCII formāts datiem.
Komandas sākumu apzīmē ar '^'.
Komandas beigas apzīmē ar '$'.
Komandas piemērs:
^G_U$
Nozīme: "go up" - virzīties uz augšu.
Komandu parameterus vienu no otra atdala ar kādu no whitespace simboliem: tukšumu, tab ('\t'), newline ('\n') vai carriage return ('\r') simboliem. Ja ir vairāki whitespace simboli pēc kārtas, tie jāuztver analoģiski vienam.
Komandas
Klients -> serverim
- S - start game Parametri: nav
- E - disconnect (end game) Parametri: nav
- G - go Parametri: virziens (U, B, L, vai R burti)
- F - shoot (fire) Parametri: nav
- T - stobra kustība (turret movement) (opcionāls) Parametri: virziens (U, B, L, vai R burti)
Serveris -> klientam
- M - map info
Map info parametri
Kartes lauciņi var būt:
- šķērslis (necaurejams tankiem, obstacle) - O
- masīvs šķērslis (necauršaujaums & necaurejams tankiem) - X
- ceļš (road) - R
- zāle (grass, kustība notiek 2x lēnāk, nekā pa ceļu) (opcionāls) - G
- purvs (swamp, kustība notiek 5x lēnāk, nekā pa ceļu) (opcionāls) - S
Map info komandas parametri:
- Kartes dimensijas: divi skaitļi N (platums) un M (augstums).
- NxM burtus gara karte ar terrain type. piemēram: "R R R R X R ...". Karti sūta, sākot no augšējās rindas, no kreisās puses uz labo.
- Nenoteikta garuma saraksts ar objektiem. Objekts tiek aprakstīts šādi:
"O-burts Tips X-koordināta Y-koordināta [citi paramteri]"
Tips:
- T - tanks
- S - shot (šāviņš)
"Citus parametrus" norāda tikai tankam. Tie ir:
- Tanka īpašnieka IP adrese un ports
- Tanka virziens (U, B, L, R)
- Tanka stobra virziens (U, B, L, R)
- Health-status (0-100%)
Objekta piemērs: "O T 1 2 10.0.0.1 33780 L L 100" - tanks lauciņā (1,2), piederošs klientam ar adresi 10.0.0.1 un portu 33780, pavērsts pa kreisi, ar stobru pavērstu pa kreisi, ar 100% veselību.
Koordināta 0 0 atbilst augšējam kreisajam stūrim.