Le Mille - Bornes

Les sources La documentation

en

R E S E A U



aperçu de l'interface graphique

 Ceci est l'aperçu de notre interface graphique

 

 

Plan du Site:

  1. Présentation générale
  2. Description interface
  3. Description Client/Serveur (Présentation Générale)
    1. Protocole Utilisé
    2. Le choix de Java
    3. Le serveur
    4. La connexion client/Serveur
    5. Le client
    6. L'échange de données
    7. La Securité
    8. Exemple de Client/Serveur(simplifié) en java
  4. Règles du Mille-Bornes
  5. Les Bugs
  6. Ce qui reste à faire
  7. Retour

  1. Présentation Générale
  2. Imaginez que vous conduisez votre voiture sur un trajet de 1000 Km - ou 1000 bornes.Vous respectez les limites de vitesse, vous freinez au feu rouge pour redémarrer au feu vert. Si un pneu crève, vous montez la roue de secours. Vous risquez de tomber en panne d'essence. Après un accident, vous ne repartez qu'après avoir fait réparer la voiture.

    Toutes ces situations sont représentées au MILLE BORNES par des cartes. Des bornes, et des feux rouges, verts, des crevaisons, des limites de vitesse, et des fins de limite, des accidents, des réparations, et des pannes d'essence...

    Plan du Site

     


  3. Description de l'interface
  4. Nous avons fait une interface graphique implementée en JAVA, en utilisant le package SWING.
    Cette interface se décompose en trois parties:

    1. Les cartes de la main du joueur courant;
    2. aperçu du côté gauche de l'interface

    3. Le plateau de jeu

    4. aperçu de la partie centrale de l'interface

    5. Un apercu des plateaux des autres joueurs ainsi que votre score actuel

    6. aperçu de la partie gauche de l'interface

     Plan du Site 

     

  5. Description Client/Serveur
  6. Voici comment est decoupé le Serveur(côté programmation):

       

    Phase 1:

    le serveur est lancé et il attend des connexions, un premier client tente de se connecter en spécifiant le nom de la machine qui a lancé le serveur (le numéro de port étant spécifié directement dans le code)
    schéma de l'organisation des connexions d'autres clients : création du serveur

    La Thread de connexion prévient alors le serveur du jeu qui commence la phase 2 ...

    Phase 2:

    diagramme de séquence pour la connexion

    diagramme de séquence pour la connexion

    le serveur crée une nouvelle thread dont le but est de communiquer avec le client1
    De son côté, le client a entendu que la connexion a été acceptée (grâce au retour d'accept).
    schéma de l'organisation des connexions d'autres clients : Connexion du client

    Ce qui lance la Phase 3 ...

    Phase 3:

    schéma de l'organisation des connexions d'autres clients : confirmation de connexion

    Le client après avoir été connecté crée une Thread de Réception de messages venant du serveur
    il crée aussi l'interface qui n'est pas affichée de suite (c'est elle qui peut envoyer des messages au serveur)
    il attend d'abord un message du serveur indiquant que le client associé (celui qui a lancé le serveur, il n'y a que lui qui peut le faire) ait lancé le jeu
    Pendant cette attente l'état des connexions des joueurs est affiché (via l'interface de connexion).

    Phase 4:

    Schéma de connexion de plusieurs clients

    Tous les clients se connectent, les threads de communication du serveur sont créées, une par client.
    Et le jeu commence...

    Voici un schéma global de la connexion du serveur avec un client:

    lancement du serveur

    Chaque Oval (sauf Client1) représente une Thread.
    On voit que si la connexion est acceptée, les threads communication Client, Réception et Attente communication

    Plan du Site




    1. Le Protocole Utilisé
    2. Vu que le jeu n'est pas en temps réel, et que de plus l'information des cartes jouées doit être sans erreurs, le protocole utilisé est TCP(Transmission Control Protocol).
      Plan du Site




    3. Le Langage Utilisé = Java
    4. Le langage java est tres répandu sur le net, donc tout ce qui concerne le réseau (parce qu'il est securisé). De plus java est portable et la communication entre Sockets est très intuitive (voir exemple de client/serveur en Java).

      Plan du Site




    5. Le Serveur
    6. Remarque:les éventuelles connexions pendant le jeu sont interceptées et on en avertit les differents joueurs mais la partie n'est pas interrompue sauf si le client qui a lancé le serveur décide de faire une nouvelle partie, ce qui intégrera ainsi les nouveaux joueurs.

      Plan du Site





    7. La Connexion Client/Serveur
    8. Plan du Site




    9. Le Client
    10. Plan du Site




    11. L'échange de données
    12. structure du message

      Plan du Site




    13. La Securité
    14. quelle sécurité?

      Plan du Site




    15. Exemple de Client/Serveur en Java
    16. Plan du Site




  7. Règles du Mille-Bornes
    1. REGLES GENERALES

      Le joueur a quatre possibilités :

      1. S'il a un Feu vert, il peut le poser en face de lui et commencer ainsi sa pile de bataille.
      2. S'il a une botte, il peut la déposer sur la table. Le fait d'exposer une botte lui donne le droit de rejouer. Il tire donc une autre carte au sabot, et joue à nouveau.
      3. S'il a une limite de vitesse, il peut la placer à un autre joueur, bien que celle-ci n'ait pas commencé à jouer.
      4. S'il n'a aucune de ces cartes, il doit se défausser en jetant l'une de ses cartes, face visible, dans la partie non echancrée du sabot.
      Puis, le suivant joue. Supposons que c'est à vous. Aux differentes façons de jouer indiquées ci-dessus s'ajoutent pour vous deux autres possibilités :
      • si le premier joueur a exposé un Feu vert, vous pouvez l'attaquer, non seulement par une Limite de vitesse, mais par n'importe quelle autre carte d'attaque.
      • si le premier joueur vous a attaqué d'une Limite de vitesse, vous pouvez recouvrir cette carte d'une Fin de limite, qui l'annulera.
    2. CARTES D'ATTAQUE ET DE PARADE

      Les attaques sont à placer dans le jeu exposé de vos adversaires; les parades se jouent dans le jeu exposé du joueur. Il existe pour chaque catégorie d'attaque une parade correspondante.

      • Feu rouge : se place uniquement sur le feu vert de vos adversaires. Il leur interdit d'exposer de nouvelles étapes tant qu'ils ne l'auront pas recouvert d'un nouveau feu vert.
      • Panne d'essence : se place sur l'emplacement des accidents de votre adversaire, et met un Feu rouge. Ils ne pourront exposer de nouvelles étapes que lorsqu'ils auront recouvert la panne d'essence d'une carte Essence puis, a un tour suivant, de mettre un Feu vert.
      • Crevaison : se place sur l'emplacement des accidents de votre adversaire, et met un Feu rouge. Ils ne pourront exposer de nouvelles étapes, qu'après avoir recouvert l'attaque d'une carte Roue de secours et, a un tour suivant, de mettre un Feu vert.
      • Accident : se place sur l'emplacement des accidents; ils ne pourront exposer de nouvelles étapes que lorsqu'ils auront recouvert votre attaque d'une carte Réparation puis, à un tour suivant mettre un Feu vert.
      • Limite de vitesse : empêche vos adversaires d'exposer de nouvelles étapes supérieures a 50, tant qu'ils ne l'auront pas recouvert avec une Fin de limite.

    Plan du Site




  8. Les Bugs
  9. Il y a un petit problème à régler avec les coups fourrés(la pioche n'est pas distribuée)

    la déconnexion n'est pas prise en compte à tous les coups

    Plan du Site




  10. Ce qu'il à reste a faire
  11. Nous aurions aimé faire: