Module Jeu


module Jeu: sig .. end
Ce module fournit le type eltJeu utilisé par le client pour gérer les objets du plateau de jeu, ainsi que le type action, qui recense toutes les actions possibles de la part du joueur.
Author(s): Christophe Gonzales
Version: 06/02/2005


type eltJeu =
| PLATEAU of int * int * int * int (*signification des paramètres :
  1. abscisse du coin inférieur gauche du plateau de jeu
  2. ordonnée du coin inférieur gauche du plateau de jeu
  3. abscisse du coin supérieur droit du plateau de jeu
  4. ordonnée du coin supérieur droit du plateau de jeu
*)
| CUBE of int * int * int * int (*signification des paramètres :
  1. abscisse du coin inférieur gauche de l'obstacle
  2. ordonnée du coin inférieur gauche de l'obstacle
  3. abscisse du coin supérieur droit de l'obstacle
  4. ordonnée du coin supérieur droit de l'obstacle
*)
| BALLE of int * int * Graphics.color (*signification des paramètres :
  1. abscisse du centre de la balle
  2. ordonnée du centre de la balle
  3. couleur de la balle
*)
| VAISSEAU of int * int * float * int * Graphics.color (*signification des paramètres :
  1. abscisse du centre du vaisseau spatial d'un joueur
  2. ordonnée du centre du vaisseau spatial d'un joueur
  3. angle indiquant la direction du vaisseau (en radians)
  4. nombre de points de vie restant au vaisseau
  5. couleur du vaisseau
*)
Le type eltJeu est utilisé par uniquement par le client. Ce dernier, en interrogeant le serveur, récupère une liste des objets (au format eltJeu) se trouvant sur le plateau de jeu. Il peut alors les afficher à l'écran.

Le constructeur PLATEAU permet de stocker les informations pertinentes pour tracer l'enceinte de l'arène de jeu. Le constructeur CUBE permet de stocker les informations relatives à un obstacle (cube noir).


type action =
| TIRE
| GAUCHE
| DROITE
| ACCELERE
| DECELERE
| NOP (*le joueur n'envoie aucun ordre au serveur*)
le type action est utilisé par le serveur pour récupérer les actions transmises par le joueur. En effectuant un filtrage approprié, le serveur peut donc mettre à jour l'état du plateau de jeu.