Réimplémentation du jeu Pong en C : déplacement des raquettes, rebond de la balle et suivi du score.
Telecharger & tester
- WebAssembly: Testable directement dans le navigateur ci-dessus.
make && ./101pong x0 y0 z0 x1 y1 z1 n (simulation de rebonds 3D, n = nombre de rebonds)
101pong est un projet Epitech de piscine (module B-MAT-100) qui consiste a ecrire en C un programme de calcul vectoriel applique a une version 3D du jeu Pong (ou du jeu Breakout). Une seule raquette est consideree, situee dans le plan (Oxy) defini par l'equation z = 0, et le programme ne s'occupe que de la trajectoire de la balle : ni les rebonds sur la raquette ni la fin de partie ne sont geres.
Le programme recoit en argument les coordonnees de la balle a deux instants consecutifs (t-1 et t), ce qui lui permet de deduire le vecteur vitesse par simple soustraction des positions. A partir de ce vecteur, il extrapole la position de la balle a un instant t+n donne en argument, puis calcule, si elle existe, l'intersection de la trajectoire avec le plan de la raquette pour en deduire l'angle d'incidence.
L'usage est ./101pong x0 y0 z0 x1 y1 z1 n, avec n un entier positif ou nul representant le decalage temporel. La sortie affiche le vecteur vitesse de la balle, ses coordonnees futures, puis l'angle d'incidence en degres (compris entre 0 et 90) si la balle atteint effectivement le plan de la raquette a un instant t superieur ou egal a 0 -- sinon le programme indique explicitement qu'elle ne l'atteindra pas.
L'enonce insiste sur la precision des calculs flottants, l'affichage etant attendu au centieme pres et devant etre strictement identique aux exemples fournis. En bonus, le sujet suggere la gestion de l'acceleration de la balle, une interface graphique, ainsi que des versions completes 2D et 3D de Pong et de Breakout, voire une raquette spherique.
Projet suivant
