Projet Py-Pong

Bienvenue à tous !

Dans le cadre de notre seconde année de cycle préparatoire à l’ISTIA nous avons eu à choisir un projet parmi une cinquantaine de projets. Intéressé par la programmation et les jeux, nous avons décidé de nous lancer dans ce projet !

– Le jeu pong

Le jeu Pong est considéré par beaucoup comme étant le précurseur des jeux que nous connaissons aujourd’hui. Sorti en 1972 et développé par Nolan Bushnell et Allan Alcorn de la société Atari, il est connu dans le monde entier ! Le concept est basique : Deux raquettes, une balle et un score pour départager deux joueurs !
Le jeu se veut ressemblant à une partie de Ping-Pong vue du dessus et s’est vu adapté un bon nombre de fois depuis sa création.

– Le développement en python

Le logiciel de développement du jeu nous a été imposé par notre tuteur, il s’agissait du logiciel “Pycharm” utilisant le langage python.
La première étape pour nous fut donc de découvrir le langage et le logiciel avant de pouvoir nous lancer dans la programmation !
L’étape suivante pour nous consistait à réaliser la base du jeu, c’est a dire les deux raquettes, le score, la balle ainsi que le rebond de cette dernière sur les raquettes. Nous avons finalement obtenu un premier résultat, déjà ressemblant au véritable Pong :

Première version fonctionnelle de notre projet Py-Pong !

Première version fonctionnelle de notre projet Py-Pong !

– Les quatre barres

La troisième étape de notre projet était sans doute la plus rapide, notre objectif était cette fois ci de passer sur un jeu à quatre raquettes en en rajoutant une au dessus et une en dessous. Nous avons ainsi obtenu le résultat suivant :

Voici à quoi ressemble le jeu une fois les deux nouvelles barres ajoutées !

Voici à quoi ressemble le jeu une fois les deux nouvelles barres ajoutées !

– Les capteurs et la carte Arduino

La plus grosse partie de notre projet consistait à permettre le déplacement de la barre de chaque joueur à l’aide d’un capteur infrarouge. Ces derniers nous envoient des valeurs qui dépendent de l’éloignement de la main du joueur par rapport au capteur, ce qui nous permet de déplacer les barres en fonction de ces valeurs ! les 4 capteurs sont branchés sur une carte Arduino qui nous permet de récupérer les valeurs dans notre programme :

Un aperçu du branchement des 4 capteurs sur la carte Arduino

Un aperçu du branchement des 4 capteurs sur la carte Arduino

– Le menu et les options

Une fois le “cœur” du projet terminé, il nous a semblé important de s’occuper un peu de “l’habillage” de ce dernier. Nous avons donc créé un menu qui permet 3 actions : Le lancement du jeu, l’accès aux options du jeu et l’arrêt du programme. Il nous a donc aussi fallu créer la page des options, qui sert d’interface d’échanges entre le joueur et le programme et permet de modifier les valeurs de plusieurs variables du programme comme la vitesse de la balle ou encore la taille des raquettes. Le design n’étant pas notre priorité, nous avons obtenu les rendus suivants :

Aperçu du menu du jeu qui permet la navigation au sein du programme

Aperçu du menu du jeu qui permet la navigation au sein du programme

Voici à quoi ressemble la fameuse page des options du jeu !

Voici à quoi ressemble la fameuse page des options du jeu !

– Le son avec Sonic Pi !

Un dernier ajout sur lequel nous avons travaillé dans le cadre de ce projet était la musique du jeu. En effet, nous désirions ajouter de la musique pendant la phase de jeu et notre tuteur nous a alors conseillé le logiciel “Sonic Pi” qui permet de “coder” de la musique à partir de samples choisis. Il était ensuite possible de relier Sonic Pi et notre programme Python pour avoir notre musique en jeu !

L'interface de programmation du logiciel Sonic Pi

L’interface de programmation du logiciel Sonic Pi

Aperçu final

Finalement, bien qu’il était encore et toujours possible d’améliorer notre programme et d’ajouter des éléments à notre jeu, il était temps de rendre notre projet ! Nous avons donc en dernière partie majoritairement réglé les bugs et modifié légèrement quelques aspects graphiques du jeu et voici l’aperçu final de ce dernier :

Voici à quoi ressemble finalement le jeu "Py-Pong" !

Voici à quoi ressemble finalement le jeu “Py-Pong” !