Nurikabe (projet d’étude)

Published by

on

Réalisé en Ruby avec GTK3

Réalisé dans le cadre d’un projet à rendre durant mon cursus. Il s’agit d’un jeu puzzle où le principe est de dessiner un mur connexe dans une grille, en respectant les cases déterminées par un numéro représentant le nombre de cases libres.

Code source du projet sur Github

Dans le cadre d’un cours de génie logiciel, le but était de réaliser un projet en groupe en utilisant le langage Ruby. Ruby étant un langage de script orienté objet particulièrement puissant, aujourd’hui utilisé pour créer des applications Web. C’est ce langage, combiné avec GTK3 (une bibliothèque graphique) qui a été choisi pour réaliser ce projet.

Plus précisément, il y avait en tout quatre projets qui ont été proposés : Slitherlink, Hashiwokakero, Nurikabe, et Kakuro. Chacun étant des jeux type puzzle. Le projet qu’on a choisi était donc le Nurikabe dont les règles sont les suivantes :

  • Le jeu se déroule dans une grille rectangulaire de cellules, dont certaines contiennent des nombres. L’objectif est de déterminer lesquelles de ces cellules sont blanches ou noires.
  • Chaque cellule numérotée est une cellule d’îlots (représenté par les cellules blanches) et le chiffre qu’elle contient est le nombre de cellules blanches que comporte l’îlot auquel elle apartient.
  • Chaque îlot ne doit comporter qu’une cellule numérotée.
  • Il ne doit y avoir qu’un fleuve (représenté par les cellules noires) qui ne doit pas contenir de lacs (des blocs de cellules noires de 2×2).

Avant toute chose, il a fallu définir un cahier des charges et le soumettre à nos professeurs. Ce cahier des charges devait contenir tout ce qui était prévu pour le bon fonctionnement du programme. Comment crée-t-on la grille de jeu, comment considère-t-on la grille comme résolue, quels sont les aides proposées et les conséquences de leur utilisation… Une fois tout ceci défini et validé, on a pu passer à la programmation.

Le cahier des charges que nous avons créé et qui a été validé stipulait des contraintes sur la création de l’application. Nous avons opté pour la possibilité de créer un compte utilisateur pour pouvoir jouer au Nurikabe, avec des grilles stockées dans un fichier texte, chacun pour un mode de jeu spécifique :

  • Mode tutoriel : Ne contient qu’une seule grille, utilisée pour apprendre comment jouer au Nurikabe
  • Mode arcade : Contient plusieurs grilles, chacune enregistrant le temps de résolution des joueurs dans un classement
  • Mode aventure : Contient plusieurs grilles, chacune déblocable après la complétion de la grille précédente

Ma contribution dans ce projet a été la création d’interfaces graphiques qui seront repris par les membres de mon équipe pour y disposer les éléments nécessaires. Plus précisément, il s’agissait de créer des interfaces graphiques de base avec des placeholders de la grille, de la gestion des utilisateurs, et d’autres éléments qui demandaient d’interagir avec des signaux (comme des boutons par exemple). À partir de là, les autres membres de mon équipe ont repris ces interfaces pour placer les éléments nécessaires là où il faut.

Laisser un commentaire