Changes between Version 8 and Version 9 of TP4


Ignore:
Timestamp:
Jul 2, 2006, 8:29:34 PM (14 years ago)
Author:
Vincent Caron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TP4

    v8 v9  
    1 = TP4: Projet - jeu en réseau, application au jeu en Python =
    2 
    3 == Principe ==
    4 
    5 Le serveur décide de tous les éléments du jeu :
    6   * la description du plateau de jeu, qu'il diffuse auprès des clients
    7   * la présence (oui/non) et le nommage des joueurs (chacun un nom unique)
    8   * les mouvements des joueurs
    9   * les positions des bombes, et leur instant de pose et d'explosion
    10   * les joueurs touchés par les bombes
    11   * les scores
    12   * la fin de la partie
    13 
    14 
    15 == Protocole proposé ==
    16 
    17 === Prologue ===
    18 {{{
    19 C: new_player <player name>
    20 S: level <name> <width> <height>
    21 S: level_row <row description #1>
    22 ...
    23 S: level_row <row description #height>
    24 }}}
    25 
    26 Nous avons là un "handshake" minimal. Le prologue est considéré fini lorsque le client a reçu la descrpition de toutes les lignes attendues. Après le prologue, le serveur et les clients fonctionnent de manière asynchrone, en initiant chacun une commande au moment de leur choix.
    27 
    28 === Serveur: envoi de position d'un joueur ===
    29 {{{
    30 S: player_pos <player name> <col> <row>
    31 }}}
    32 
    33 Il n'y a pas d'annonce explicite de l'arrivée des joueurs sur le plateau. Le premier ordre ''player_pos'' reçu par un client doit être considéré comme l'annonce d'arrivée d'un joueur. Un client se verra bien entendu annoncer son propre joueur (pour obtenir sa position initiale).
    34 
    35 === Serveur: envoi d'un mouvement d'un joueur ===
    36 {{{
    37 S: player_move <player name> <dcol> <drow>
    38 }}}
    39 
    40 Bien que seules la position (cellule) d'un joueur soit prise en compte pour l'interprétation des règles du jeu, la visualisation des mouvements des joueurs (un effet graphique de glissement en attendant de changer définitivement de cellule) est essentiel pour la jouabilité !
    41 
    42 === Serveur: annonce de la mort d'un joueur ===
    43 {{{
    44 S: player_life <player name> <life>
    45 }}}
    46 
    47 On peut gérer les "credits" en considérant <life> comme un compteur, la mort du joueur étant représentée par zéro.
    48 
    49 === Serveur: annonce de pose de bombe ===
    50 {{{
    51 S: bomb_drop <id> <col> <row>
    52 }}}
    53 
    54 L'identifiant ''id'' sera repris par la commande ''bomb_explode''.
    55 
    56 === Serveur: annonce d'explosion de bombe ===
    57 {{{
    58 S: bomb_explode <id>
    59 }}}
    60 
    61 
    62 === Client: envoi d'une intention de mouvement d'un joueur ===
    63 {{{
    64 C: player_try_move <dcol> <drow>
    65 }}}
    66 
    67 === Client: envoi d'une intention de pose de bombe ===
    68 {{{
    69 C: player_try_drop
    70 }}}
     1Page dépréciée en faveur de [wiki:EnstaTP4].