Des mineurs - Portfolio Martin Parizet
Retour aux projets

logo Jeu WEB Des Mineurs

Réinvention du célèbre jeu du Démineur avec une direction artistique inspirée de Minecraft, offrant une expérience familière mais revisitée avec un univers graphique cubique et ludique.

Période

Développement intensif d'une semaine

Client/Contexte

Projet scolaire transformé en initiative personnelle

Mon rôle

Développement des mécaniques de jeu et interface de grille

Le projet

"Des mineurs" est né d'un projet étudiant simple qui s'est transformé en une véritable aventure créative. Alors que l'exercice initial demandait simplement de créer un démineur basique, nous avons décidé avec un camarade de pousser le concept beaucoup plus loin en fusionnant l'univers du jeu Minecraft avec les mécaniques classiques du démineur.

L'objectif du jeu reste fidèle à l'original : marquer toutes les bombes avec un drapeau sans en faire exploser une seule. Notre touche personnelle réside dans l'habillage visuel et sonore inspiré de Minecraft, avec des blocs, des sons et des animations qui rappellent l'univers cubique du jeu de Mojang.

Nous avons également enrichi l'expérience avec des fonctionnalités supplémentaires, comme un système de vies permettant de continuer sa partie même après avoir fait exploser une bombe, ainsi que différents niveaux de difficulté qui modifient la taille de la grille et le nombre de bombes.

Fonctionnalités

Grille de jeu personnalisable

Plusieurs niveaux de difficulté permettant d'ajuster la taille de la grille de jeu et le nombre de bombes. Les joueurs peuvent choisir entre une partie facile pour débuter ou un défi plus intense avec une grille plus large et davantage de bombes à détecter.

Système de vies

Contrairement au démineur classique où une seule erreur est fatale, notre version intègre un système de cœurs permettant de survivre à plusieurs explosions. Le nombre de vies peut être configuré dans les paramètres, offrant ainsi une expérience adaptée à tous les niveaux de joueurs.

Chronomètre de partie

Un timer précis permet de mesurer le temps nécessaire pour terminer chaque partie, ajoutant ainsi un élément de challenge personnel. Les joueurs peuvent tenter d'améliorer leur temps à chaque nouvelle tentative, rendant l'expérience encore plus addictive.

Animations et effets sonores

Des animations spectaculaires et des effets sonores fidèles à l'univers Minecraft enrichissent l'expérience de jeu. Une pluie de diamants célèbre la victoire, tandis que des explosions visuelles et sonores marquent les erreurs. Un système d'achievements à la Minecraft apparaît également pour féliciter le joueur.

Galerie

Défis & Solutions

Défi 1: Algorithme de génération du tableau de jeu

L'un des défis majeurs a été de créer un algorithme qui génère aléatoirement les bombes tout en garantissant que la première case cliquée par le joueur ne contienne jamais de bombe, ce qui aurait rendu l'expérience de jeu frustrante.

Solution:

J'ai implémenté un système qui initialise la grille uniquement après le premier clic du joueur. L'algorithme place ensuite les bombes aléatoirement en excluant la case choisie par le joueur et ses cases adjacentes, offrant ainsi un début de partie toujours équitable et stratégique.

Défi 2: Révélation automatique des cases vides

La fonctionnalité qui dévoile automatiquement les cases adjacentes lorsqu'une case vide est cliquée a été particulièrement complexe à implémenter, nécessitant un algorithme récursif efficace.

Solution:

J'ai développé un algorithme de parcours en profondeur (DFS) qui explore récursivement toutes les cases adjacentes à une case vide, s'arrêtant uniquement lorsqu'il rencontre des cases contenant des nombres. Cette approche permet de révéler rapidement de grandes zones sans bombes, tout en maintenant les performances du jeu même sur des grilles de grande taille.

Défi 3: Compatibilité avec les appareils mobiles

Une limitation technique importante a été l'incompatibilité de certaines fonctionnalités JavaScript avec les navigateurs mobiles, empêchant le jeu de fonctionner correctement sur smartphones et tablettes.

Solution:

Bien que cette limitation n'ait pas été entièrement résolue dans la version actuelle, nous avons identifié les points problématiques et planifié une refonte de ces fonctionnalités en utilisant des alternatives plus compatibles avec les navigateurs mobiles. Cette amélioration fait partie des développements futurs prévus pour le jeu.

Ce que j'ai appris

Ce projet, bien que relativement court, a été incroyablement enrichissant sur le plan technique et créatif, me permettant de développer plusieurs compétences clés.

Compétences techniques

  • Maîtrise approfondie de JavaScript pour la logique de jeu et la manipulation du DOM
  • Conception et implémentation d'algorithmes complexes (génération de grille, révélation récursive)
  • Intégration d'éléments visuels et sonores pour créer une expérience utilisateur immersive
  • Optimisation des performances pour gérer efficacement des grilles de grande taille

Compétences transversales

  • Collaboration efficace en binôme avec répartition des tâches selon les compétences
  • Transformation d'un projet académique simple en un produit plus ambitieux et abouti
  • Capacité à transformer une inspiration (Minecraft) en un produit original tout en respectant l'essence de l'œuvre originale
  • Identification des limitations techniques et planification d'améliorations futures
Voir tous mes projets