Aperçu du projet
MiniJeux est une collection de jeux développée en Python, conçue pour explorer les concepts fondamentaux de la programmation tout en créant des expériences ludiques. Le projet regroupe plusieurs jeux classiques : un jeu de devinettes, un morpion, et le jeu des allumettes.
Chaque jeu propose différents modes de difficulté grâce à l'implémentation d'intelligences artificielles de différents niveaux. Les joueurs peuvent ainsi s'affronter contre des robots faciles, moyens ou difficiles, offrant une expérience progressive et stimulante.
Fonctionnalités principales
- Jeu de devinettes avec système d'indices progressifs pour guider le joueur
- Morpion (Tic-Tac-Toe) avec possibilité de jouer contre l'ordinateur ou un autre joueur
- Jeu des allumettes avec stratégies d'IA optimisées pour différents niveaux
- Système de robots avec trois niveaux de difficulté (facile, moyen, difficile)
- Sauvegarde des scores et statistiques des parties jouées au format JSON
- Interface en ligne de commande claire et intuitive
- Gestion des règles et validation automatique des coups
Technologies utilisées
Le projet est entièrement développé en Python, un langage particulièrement adapté pour l'apprentissage de la programmation et le développement d'algorithmes. Sa syntaxe claire et sa grande lisibilité en font un choix idéal pour ce type de projet.
JSON est utilisé pour la persistence des données, notamment pour sauvegarder les scores, l'historique des parties et les paramètres de configuration. Ce format léger et lisible facilite le stockage et la manipulation des données de jeu.
Compétence BUT démontrée
MiniJeux — Collection de jeux en Python avec IA (Morpion, Allumettes, Devinettes)
Niveau estimé : 3 — AutonomieDescription : Dans le cadre d'un projet Python, j'ai développé une collection de mini-jeux intégrant des robots à plusieurs niveaux de difficulté. Pour le morpion, le robot « niveau difficile » devait jouer de façon optimale, ce qui impliquait d'implémenter un vrai algorithme mathématique de théorie des jeux. Pour le jeu des allumettes, la stratégie gagnante repose sur une propriété mathématique.
Mon rôle : J'ai conçu et implémenté l'algorithme Minimax pour le bot difficile du morpion : l'algorithme explore récursivement tous les états possibles du jeu, évalue chaque issue (victoire, défaite, nul) et remonte le coup optimal. J'ai également modélisé la stratégie gagnante du jeu des allumettes basée sur la congruence modulo (n mod (k+1) = 0), pour le bot niveau difficile, et introduit volontairement des erreurs probabilistes pour les bots de niveau inférieur. Les scores et statistiques ont été persistés en JSON.
Analyse réflexive
La difficulté principale a été de comprendre le fonctionnement de Minimax avant de l'implémenter : il fallait modéliser l'arbre des états, attribuer des scores aux feuilles et propager ces scores vers la racine. Ce n'est pas trivial à implémenter pour la première fois. Sur le plan des softskills, ce projet a exigé beaucoup de persévérance : comprendre un algorithme sur le papier est une chose, le déboguer dans une récursion profonde en est une autre.
Apprentissages
Ce projet m'a permis de consolider mes bases en algorithmique : modélisation d'un arbre d'états, récursivité, évaluation et propagation de scores avec Minimax, et application directe de propriétés mathématiques (congruence modulo) dans une stratégie de jeu.
La persistance des données en JSON et la conception de robots à difficulté progressive m'ont également appris à structurer un programme Python proprement, du cœur algorithmique jusqu'à l'expérience de jeu.