WebGL > Projet

Projet WebGL : billard français

Le projet donnera lieu à une soutenance qui aura lieu le ? . Vous devrez remettre un document décrivant comment vous avez réalisé chacune des parties ci dessous.

N'hésitez pas à communiquer par mail (sebastien.choplin@u-picardie.fr) si vous rencontrez des difficultés ou pour valider l'avancement de votre travail.


Partie 1: on réfléchit à ce qu'on va faire

Le jeu, les règles

dans un premier temps, il faut décrire le jeu que vous allez modéliser, mieux vaut quelque chose de simpliste et bien fait plutot que quelque chose d'ambitieux mais inachevé.
  1. Expliciter les règles du jeu que vous allez prendre en compte
  2. Expliciter le mode de jeu qui sera proposé (1 joueur, 2 joueurs avec points ...)
Vous trouverez toutes les informations sur le billard français sur la page wikipedia sur le billard français

La modélisation de la physique

Les boules vont se déplacer sur le tapis, suite à l'impact avec la queue de billard. Elles vont entrer en collision et rebondir sur les bandes.
  1. décrivez les différents phénomènes physiques à prendre en compte (vitesse, frottements, transmission des forces à l'impact, ...)
Une bonne reflexion sur ce que vous voulez modéliser vous permettra de mieux concevoir votre modèle de données

L'interface Homme-Machine

  1. décrivez comment vous voulez représenter visuellement le jeu
  2. décrivez comment l'utilisateur va inter-agir avec le jeu
Vous pouvez faire des dessins pour illustrer ce que sera l'interface.

Partie 2: on réfléchit à comment on va faire

Le modèle de données

  1. décrivez comment vous allez représenter les différents éléments (boules, billard, queue, ...), par exemple:
    var boule1 = {
      x,y,z, // position x,y,z dans l'espace du centre de la boule
      rayon: 30.75, // diametre officiel = 61.5mm 
      couleur: '#ff0000', // la boule rouge
      vx,vy,vz // vecteur vitesse de deplacement
    }
    
  2. décrivez les fonctions dont vous aurez besoin pour modéliser le jeu et les lois physiques, par exemple:
     /**
      * renvoie 'true' si les boules sont en collision
      * (i.e.: leurs centres sont a distance 
      *        inferieur a la somme des rayons des boules)
      */
     function collision(boulea,bouleb) {
        ... // on ecrira la fonction plus tard
     }
    

La visualisation

  1. décrivez comment les éléments seront dessinés:

Partie 3: on programme

A partir de ce moment vous pouvez commencer à programmer, procédez par étapes, par exemple:
  1. faire un programme qui affiche une boule
  2. faire un programme qui affiche la table de billard
  3. faire un programme qui affiche une boule se déplaçant sur la table de billard
  4. faire un programme qui affiche deux boules entrant en collision sur la table de billard (si vous arrivez jusque là ce sera déjà bien)
  5. ...
  6. le jeu complet :-)