Projet Boggle

Technologies

HTML/CSS Javascript PHP React C Java Python MySQL

Description

Boggle est jeu de lettres consistant à trouver le maximum de mots sur une grille tirée aléatoirement. L'objectif de ce projet était de concevoir et développer une version navigateur de ce jeu à un niveau multijoueur. Ainsi, avec une équipe de 3 étudiants, nous avons conçu de A à Z une version de ce jeu que nous avons nommé "Froggle", en clin d'oeuil aux grenouilles.

Concept et inspiration

Boggle, bien que simple, peut sembler un peu démodé si on l'apparente à des jeux comme Scrabble qui sont similaires. C'est pourquoi nous avons voulu lui insuffler une touche ludique. Pour cela, nous avons décidé d'associer une mascotte animale au site, ce qui nous a conduits à choisir la grenouille (Mon animal favoris), d'où le nom Froggle (fusion de "Frog" et "Boggle"). Pour maintenir cet esprit de jeu de société, nous avons cherché un style qui lui correspondrait. Inspirés par des références telles que le design simple mais efficace de UNO!, nous nous sommes tournés vers le courant NEO-Brutaliste, popularisé depuis 2023. Des formes géométriques simples et imposantes, des couleurs contrastées sans dégradés, et une typographie audacieuse : voilà ce qui caractérise Froggle.

Moteur de jeu

Le cœur même du jeu, écrit en langage [ C ], constitue le moteur du jeu, assurant son fonctionnement. Il gère la génération des grilles, la détection des mots dans la grille et le calcul des scores. Ce programme utilise la structure de la liste doublement chaînée (Child-sibling Tree) pour construire un dictionnaire de mots à partir d'un fichier .LEX. Il effectue ensuite la vérification de la validité des mots proposés par les joueurs en parcourant cette liste chaînée. En outre, le moteur de jeu prend en charge tous les calculs des scores de chaque joueur.

Dictionnaire de mot

Pour recueillir un large éventail de mots de la langue française et les associer à leurs définitions, nous avons élaboré un dictionnaire en extrayant des fragments XML du Wiktionnaire français que nous avons analysé en Java. Pour ce faire, nous avons commencé par créer un fichier binaire afin d'indexer rapidement nos mots et leurs définitions. Ensuite, la recherche d'un mot donné s'effectue par dichotomie en utilisant cet index. Cette fonctionalité est utilisée notamment pour chercher la définition d'un mot trouvé lors d'une partie.

Des salons de jeu avec Websocket Python

Qui dit jeu multijoueur dit salon de jeu ! Pour permettre des parties à plusieurs, nous avons intégré un websocket en Python. Celui-ci nous permet non seulement de communiquer via un chat, mais également d'afficher en temps réel les scores de chaque joueur.

✧ Connaissances acquises ✧

Ce projet a été l'un des plus complet que j'ai pu avoir durant ces deux années de BUT informatique. Il met en relation un grand nombre de langages (C, Java, PHP, JavaScript, SQL ...), ce qui m'a permise de voir de quelle manière on peut les faire communiquer entre eux. J'ai pu apprendre à traduire des exigences en une solution informatique complète et performante. Il m'a égelement permis de travailler en équipe, et de savoir situer mon rôle dans celle-ci,. Lors de ce projet j'ai été principalement développeuse web et Java J'ai pu utiliser des méthodologies agiles telles que Kanban ou scrum afin de gérer au mieu le projet et ses délais. Enfin ce que je peux en retenir, c'est que le projet Boggle à été bénéfique à la fois pour enrichir mes connaissances techniques mais aussi mes "soft skills" comme l'autonomie ou la communication qui sont aujourd'hui important à maitriser.