Application Web

Blokus Online – Jeu de stratégie multijoueur 100 % web

mars – juin 2025
20 vues
Voir le projet Code confidentiel, démo sur demande
youtu.be
Blokus Online – Jeu de stratégie multijoueur 100 % web

Synthèse du projet

Stack
  • JavaScript
  • MySQL
  • Spring
  • Spring Boot
  • Docker
  • JPA
  • Spring MVC
  • Spring Security
  • Thymeleaf
  • WebSocket

Description du projet

Blokus est un jeu de stratégie à plateau pour 2 à 4 joueurs. Chaque joueur reçoit 21 pièces d'une même couleur (rouge, bleu, vert ou jaune), formées de 1 à 5 carrés, à poser sur un plateau de 20 × 20 cases. Le but est de poser le plus de cases possible.

Comment on joue : chacun joue à son tour. La première pièce doit recouvrir un coin du plateau. Ensuite, chaque nouvelle pièce doit toucher une pièce de sa propre couleur par un coin seulement, jamais par un côté ; elle peut en revanche toucher les pièces des adversaires. Les pièces peuvent être pivotées et retournées. Un joueur qui ne peut pas jouer passe son tour, et la partie se termine quand plus personne ne peut poser de pièce. D'après les règles du jeu, chaque case posée vaut 1 point, avec un bonus de 15 points si toutes les pièces ont été posées (5 points de plus si la dernière est la pièce d'une seule case).

L'application : Blokus Online reprend ces règles dans le navigateur, sans installation. On crée une partie et on invite les autres joueurs ; les coups de chacun s'affichent en temps réel chez tous les joueurs. On peut aussi jouer seul : après chaque coup du joueur, un adversaire automatique, géré par l'application, joue à son tour.

Choix techniques. Le sujet imposait une partie du cadre technique, notamment le framework Spring Boot. Le reste a été décidé en équipe, selon les besoins du jeu.

WebSocket. Le sujet ne le demandait pas, mais un jeu à plusieurs l'impose : les déplacements et les positions des pièces doivent s'actualiser en temps réel chez tous les joueurs, et la main doit passer au joueur suivant. Il faut donc synchroniser les mouvements. Les WebSocket (messages STOMP avec SockJS) répondent à ce besoin ; des requêtes Ajax suffiraient pour des échanges ponctuels, mais pas pour une synchronisation permanente.

Sécurité. Spring Security impose la connexion pour accéder à l'application, et les mots de passe sont hachés avec BCrypt. Chaque joueur n'accède qu'à ce qui lui appartient : la page de jeu vérifie qu'il fait partie de la partie, et il ne peut pas ouvrir celle d'un autre. L'accès aux données passe par JPA, sans requête SQL écrite à la main. L'objectif était de limiter les injections, les tentatives d'intrusion et les fuites d'informations.

Docker. Il permet d'unifier le projet et de l'exécuter dans un environnement isolé de nos machines locales, identique pour toute l'équipe : un Dockerfile compile l'application avec Maven puis l'exécute avec Java 17, et un fichier Compose démarre l'application avec sa base MySQL.

Projet de groupe de quatre personnes (M1 MIAGE). Ma contribution : le front interactif du jeu et les mises à jour en temps réel (WebSocket), la logique de jeu et la validation des placements, la configuration de sécurité (Spring Security) et les pages de connexion, la dockerisation, et un test du service de jeu.

Galerie (1 média)

Découvrir plus

Projets similaires

démo sur demande
Gestion des réunions entre alternants et tuteurs

2024

Gestion des réunions entre alternants et tuteurs

Application web de gestion des réunions de suivi entre les alternants, leurs tuteurs et les professeurs…

Rôle Système de Gestion

  • Spring
  • Spring Boot
  • Laravel
  • PHP
démo sur demande
Projet Blog Symfony

2023 · Application Web

Projet Blog Symfony

AKAM Blog — Plateforme de blogging (Symfony) Plateforme de blog développée avec Symfony dans le cadre d'un…

Rôle Projet de formation · Aix-Marseille Université

  • SQL
  • PostgreSQL
  • Canva
  • Bootstrap
  • et 8 autres technologies