Jeu Blackjack CLI
Presentation
Objectif principal : Faire un Blackjack jouable dans le terminal. C'etait un projet pour apprendre la POO en Python, avec des classes pour les cartes, le deck et les joueurs.
Technologies utilisees : Python pur, sans bibliotheque externe. J'utilise juste random pour melanger les cartes et colorama pour mettre de la couleur dans le terminal.
Fonctionnalites cles : On peut tirer des cartes ou rester, le croupier joue automatiquement selon les regles classiques (tire jusqu'a 17). Y'a un systeme de mise avec des jetons, et on peut faire plusieurs parties d'affilee.
Livrables attendus : Un script Python qui se lance et permet de jouer au Blackjack. Les cartes s'affichent en ASCII art dans le terminal.
Calendrier previsionnel : Environ 4 jours de dev. Le plus long c'etait de gerer tous les cas speciaux (As qui vaut 1 ou 11, Blackjack naturel, egalite, etc.).
Parties prenantes & criteres de succes : Projet pour le cours d'algo. Le prof voulait voir de la POO bien structuree et un jeu sans bugs.
Le Defi
Le plus galere c'etait de gerer l'As. Il peut valoir 1 ou 11 selon ce qui t'arrange. Faut donc recalculer la valeur de la main a chaque carte tiree. J'ai eu pas mal de bugs au debut parce que je gerais pas bien ce cas.
La Solution
J'ai fait une methode qui compte d'abord tous les As comme 11, puis qui les convertit en 1 un par un tant que le total depasse 21. Ca marche pour n'importe quel nombre d'As dans la main. Simple mais efficace.
Architecture Technique
Classe Card avec valeur et couleur, classe Deck qui contient 52 cartes et les melange, classe Hand pour gerer la main d'un joueur, et classe Game qui orchestre tout. Le croupier a sa propre logique dans une methode separee.
Points Cles
- Gestion complete des As (1 ou 11)
- Affichage ASCII art des cartes
- Systeme de paris avec jetons
Apercu
Resultats & Apprentissages
J'ai bien compris la POO grace a ce projet. Separer le code en classes rend tout plus clair et plus facile a debugger. J'ai aussi appris a gerer les etats d'un jeu (en cours, gagne, perdu, egalite).
Evolutions Futures
Ajouter les regles avancees : split, double down, assurance. Peut-etre faire une version graphique avec Pygame ou une interface web avec Flask.