Difference between revisions of "LU-LSP-b11:projekts"

From DiLab
Jump to: navigation, search
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 kustiiba (turret movement) (opcionāls) Parametri:
* 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 (kustība notiek 2x lēnāk, nekā pa ceļu) (opcionāls) - G
* 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 Parametri:
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 Health-status"
"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.