Ruzzle

L'objectif du projet est de concevoir un logiciel qui permet de jouer au jeu Ruzzle sur un ordinateur.

Introduction

Ruzzle est un jeu pour smartphones créé très récemment par la société suédoise MAG Interactive. Extrêmement simple dans son principe, ce jeu connaît actuellement un succès énorme (voir par exemple cet article de presse).

Ruzzle est inspiré du jeu Boggle, avec quelques emprunts au Scrabble.

Fonctionnement

Principes du jeu

L'objectif du jeu est de trouver un maximum de mots dans une grille composée de 16 lettres mélangées. Pour former un mot, le joueur doit trouver un chemin qui passe dans l'ordre par toutes les lettres du mot, celles-ci devant être voisines les unes des autres verticalement, horizontalement ou en diagonale. Dans la figure ci-dessous, le mot « jets » est formé successivement des lettres J puis E puis T puis S.

Grille Ruzzle

Exemple de grille de jeu.

Ruzzle Score

Affichage du score après une partie (mode solo).

Une partie dure deux minutes. Lorsque le temps est écoulé, le joueur peut voir le nombre de mots qu'il a trouvés, le nombre total de mots présent dans la grille ainsi qu'un score calculé en fonction de la longueur des mots trouvés et du poids des lettres utilisées pour les former. Par exemple, sur la figure ci-dessus, la lettre J à un poids de 8 tandis que la lettre E à un poids de 1.

Des pastilles de couleurs indiquent des bonus spéciaux gagnés lorsque certaines lettres sont utilisées. Les différents bonus sont : « lettre compte double », « lettre compte triple », « mot compte double » et « mot compte triple ». Sur la figure, la lettre A porte la pastille « lettre compte double (Double Letter - DL) » et la lettre B la pastille « mot compte triple (Triple Word - TW) ».

Modes multi-joueurs

Le jeu comporte un mode solo, utilisé pour s'entrainer, et un mode multi-joueurs en réseau. Dans le mode multi-joueurs, les joueurs peuvent se défier en duels. Chaque duel comporte trois manches, c'est-à-dire trois parties successives, que les joueurs peuvent effectuer chacun à leur rythme : pour chaque manche, le joueur et son adversaire jouent chacun de leur côté quand ils le souhaitent et le résultat de la manche n'est affiché qu'une fois que les deux joueurs ont terminé. Le joueur qui remporte le plus grand score total (somme des scores des manches) gagne le duel.

Duel Ruzzle

Duel en mode multi-joueurs.

Duel Ruzzle Score

Affichage des scores en mode multi-joueurs.

Exploits

Au fur et à mesure des parties, chaque joueur peut remporter des « exploits », c'est-à-dire des défis personnels. Par exemple, utiliser toutes les lettres de la grille en une unique manche ou trouver plus de 20 mots par manche.

Liste Exploits Ruzzle

Liste des exploits.

Duel Ruzzle Score

Exemple d'exploit réussi.

Fonctionnalités minimum attendues

  1. Le logiciel doit permettre de jouer au jeu Ruzzle en mode solo et en mode multi-joueurs.
    La complexité de jeu liée au mode multi-joueurs pourra être implémentée progressivement dans différentes versions du logiciel.
  2. En mode solo, l'utilisateur doit pouvoir voir son score et les mots qu'il a trouvés ainsi que les solutions du jeu. En mode multi-joueurs, l'utilisateur doit pouvoir voir son score et ses mots ainsi que le score et les mots de son adversaire pour chaque manche. Pour chaque duel dans lequel il est impliqué (que le duel soit terminé ou non), l'utilisateur doit voir un récapitulatif des différentes manches avec les scores et mots correspondants.
  3. L'utilisateur doit pouvoir accéder à des statistiques de jeu au fur et à mesure de ses parties, que ce soit en mode solo ou en mode multi-joueurs.

Dans une version avancée, la gestion des exploits pourra être ajoutée.

Quelques pistes pour démarrer

Composants du projet

Le projet peut être décomposé en quatre modules principaux :

  • génération des grilles de jeu aléatoires à l'aide d'un dictionnaire ;
  • interaction avec l'utilisateur : saisie des mots, validation et comptage des points, compte à rebours... ;
  • gestion du mode multi-joueurs et des duels ;
  • gestion des statistiques de jeu.

Une des premières étapes de la conception consistera à définir la structure de données qui sera utilisée pour représenter une grille de jeu et ses solutions. Cette structure de donnée doit faciliter l'identification des mots valides saisis par l'utilisateur lors du jeu ainsi que le comptage des points.

Le mode multi-joueurs et la constitution de statistiques de jeu impliquent de créer des comptes pour les joueurs. Il sera donc nécessaire de définir également la structure de données qui sera utilisée pour représenter les joueurs.

Architecture technique

Pour le mode multi-joueurs, une architecture client - serveur (« deux-tiers») devra être mise en oeuvre. Dans un premier temps il sera nécessaire d'étudier les différentes configurations d'architectures client - serveur pour faire un choix. Il faudra ensuite s'intéresser au protocole de communication entre le client et le serveur, à la fois sur le plan technique (quel protocole réseau utiliser) et sur le plan fonctionnel (quelles informations seront échangées entre le client et le serveur).

Technologies

Il pourra être intéressant de regarder :

  • Les APIs Java des dictionnaires en ligne Wordnet ou Wiktionary.
  • Les technologies utilisables pour réaliser l'interface utilisateur, telles que Swing.
Remarque : si vous souhaitez réaliser une application web avec une interface HTML plutôt qu'une interface Swing, il vous faudra alors regarder Java Enterprise Edition. Attention cependant, les possibilités en termes d'interactions utilisateur sont plus restreintes qu'avec Swing, sauf à utiliser en complément des technologies comme JavaScript et jQuery.
  • Les bibliothèques standard de Java pour :
  • Les bibliothèques permettant de générer des graphiques à partir de statistiques, telles que JFreeChart par exemple.

Documents