Programmation du jeu Rush Hour sur Nintendo DS

Mini-projet de PeiP

Lucas DELCROIX-EUSTACHE  lucas.delcroix@etu.univ-tours.fr
Brendan JANY  brendan.jany@etu.univ-tours.fr

Le but de ce projet était d’adapter le célèbre jeu de casse-tête Rush Hour sur la console portable Nintendo DS

Jeu de base

Il s’agit d’un jeu de société édité par ThinkFun

Très simplement, c’est un jeu de casse-tête simulant un embouteillage durant les heures de pointes. Il faut sortir sa voiture rouge vers la sortie du « parking »

On doit bouger les autres véhicules (voitures et camions), qui ne peuvent se déplacer que dans une seule direction (soit verticalement, soit horizontalement), pour libérer la place.

Adaptation du jeu

Tout d’abord, il a fallu voir les adaptions existentes. Il a été vu que des versions Android et Iphone/Ipad existaient déjà.

Voici par exemple un screen de la version Iphone :

Les intérêts de la Nintendo DS sont :
– Utilisation du stylet (écran tactile)

– Le double écran

Spécifications de la console

– Deux écrans d’une résolution de 256×192 pixels chacun, avec un affichage de 256 000 couleurs

– Processeurs ARM7 et ARM9

Le développement a été fait sur une cartouche DS « linker » permettant de lire des logiciels et jeux Nintendo DS (extension .nds). Les librairies PAlib du langage C ont été utilisées (librairies spécifiques à la Nintendo DS)
Développement du jeu

Ce sont les images issues du jeu Ipad qui ont été utilisés, puisque ce sont celles qui ont la meilleure qualité.

Il a fallu tout d’abord récupérer les voitures et les camions et les recoloriser (modification de la texture) :

Il a fallu ensuite les mettres sur un fond magenta, puisque le magenta est la couleur de tranparence de PAlib (couleur non affichée à l’écran) :

Le background a ensuite été inséré sur l’écran, puis les véhicules placés en fonction des cartes disponibles dans le jeu (placement par coordonnées).

Exemple de carte :

Par la suite, il fallait gérer les déplacements des véhicules, en respecant les directions possibles, puis en ajoutant un effet « saccadé ».

A la fin, ce sont les boutons « STOP » et « RESET » qui ont été implémentés. Lorsque l’on est en jeu, nous suivons les algorigrammes suivants (pour chaque boutons) :

Poster du projet (disponible en salle Lovelace) :

A très bientôt dans un prochain billet …