Table des matières
TD - Création d’un jeu de Blackjack en JavaScript
L’objectif de cette séance est de créer un jeu de Blackjack simple avec un seul joueur en JavaScript, en utilisant les cartes HTML/CSS du TD précédent.
Partie 1 : Blackjack sans croupier
Règles du jeu (version simplifiée)
- But du jeu : Obtenir une main dont la valeur totale est la plus proche possible de 21 sans le dépasser.
- Valeur des cartes :
- Les cartes de 2 à 10 ont leur valeur nominale.
- Les Figures (Valet, Dame, Roi) valent 10 points.
- L’As vaut 1 ou 11 points, selon ce qui est le plus avantageux pour le joueur.
- Déroulement :
- Le joueur commence avec deux cartes.
- Il peut choisir de tirer des cartes supplémentaires pour améliorer sa main.
- Si la valeur totale de sa main dépasse 21, il perd.
- Dans cette version simplifiée, il n’y a pas de croupier. Le but est simplement de ne pas dépasser 21.
Travail à réaliser
1. Création de la page web
- Créez une page HTML représentant une table de Blackjack.
- Utilisez les cartes HTML/CSS du TD précédent pour afficher les cartes.
- Ajoutez un bouton “Tirer une carte” qui permettra au joueur de tirer une carte aléatoirement depuis le paquet.
- Affichez les cartes tirées sur la table afin que le joueur puisse voir toutes les cartes de sa main.
2. Codage du jeu
- En JavaScript, créez un paquet de 52 cartes (sans les jokers) en utilisant une structure de données appropriée (par exemple, un tableau).
- Lorsqu’on clique sur le bouton “Tirer une carte” :
- Sélectionnez une carte aléatoire du paquet.
- Ajoutez cette carte à la main du joueur.
- Mettez à jour l’affichage pour montrer la nouvelle carte sur la table.
- Calculez la valeur totale de la main du joueur après chaque tirage.
- Si la valeur totale dépasse 21 :
- Affichez un message indiquant que le joueur a perdu.
- Si la valeur totale est égale à 21 :
- Affichez un message indiquant que le joueur a gagné.
- Le joueur peut choisir d’arrêter de tirer des cartes à tout moment.
Instructions supplémentaires
- Gérez le cas de l’As qui peut valoir 1 ou 11 points en fonction de ce qui est le plus avantageux pour le joueur.
- Assurez-vous que chaque carte ne puisse être tirée qu’une seule fois (une carte ne peut pas être tirée plusieurs fois).

Partie 2 : Blackjack avec croupier
Règles du jeu (version avec croupier)
- But du jeu : Avoir une main dont la valeur totale est supérieure à celle du croupier sans dépasser 21.
- Valeur des cartes :
- Identique à la première partie.
- Déroulement :
- Le joueur et le croupier reçoivent chacun deux cartes.
- Une des cartes du croupier est face cachée.
- Le joueur peut choisir de tirer des cartes supplémentaires pour améliorer sa main.
- Si le joueur dépasse 21, il perd immédiatement.
- Une fois que le joueur a terminé, le croupier révèle sa carte cachée.
- Le croupier doit tirer des cartes jusqu’à atteindre au moins 17 points.
- Si le croupier dépasse 21, le joueur gagne.
- Sinon, celui qui a la main la plus proche de 21 sans le dépasser gagne.
Travail à réaliser
1. Modification de la page web
- Ajoutez une zone pour afficher la main du croupier.
- Affichez une des cartes du croupier face cachée au début du jeu.
- Ajoutez un bouton “Arrêter” permettant au joueur de terminer son tour et de laisser le croupier jouer.
2. Codage du jeu
- Distribuez deux cartes au joueur et deux cartes au croupier au début du jeu.
- Affichez une carte du croupier face visible et l’autre face cachée.
- Mettez à jour les fonctions pour gérer le tour du joueur :
- Le joueur peut choisir de tirer une carte ou s’arrêter.
- Si le joueur dépasse 21, il perd immédiatement et le jeu se termine.
- Une fois que le joueur s’arrête :
- Révélez la carte cachée du croupier.
- Le croupier tire des cartes selon les règles :
- Il doit continuer à tirer tant que sa main est inférieure à 17.
- S’il atteint ou dépasse 17, il s’arrête.
- Déterminez le vainqueur en comparant les mains du joueur et du croupier.
- Affichez un message indiquant si le joueur a gagné, perdu ou s’il y a égalité.
- Gérez les égalités : si le joueur et le croupier ont la même valeur de main, la partie est nulle.
- Ajoutez un bouton Rejouer pour réinitialisez le jeu après chaque partie.
Partie 3. Gestion des mises
Règles supplémentaires
- Objectif : Le joueur commence la partie avec une somme d’argent fictive (par exemple, 1000 unités).
- À chaque partie, le joueur peut choisir une mise avant de recevoir ses cartes.
- Si le joueur gagne, il double sa mise. S’il perd, il perd sa mise.
- En cas d’égalité, la mise est remboursée au joueur (il ne perd rien mais ne gagne rien non plus).
- Le jeu continue tant que le joueur a encore de l’argent. Si son total atteint 0 unités, la partie est terminée.
Travail à réaliser
1. Création de la gestion des mises
- Ajoutez une section dans la page web où le joueur peut entrer un montant de mise avant de commencer chaque partie.
- Mettez en place un affichage pour indiquer le solde actuel du joueur (par exemple, afficher “Solde actuel : 1000 unités”).
- Lorsque le joueur décide de tirer une carte ou s’arrêter, assurez-vous que la mise ait été placée.
- Gérez la mise selon l’issue du jeu :
- Si le joueur gagne, augmentez son solde du montant de la mise;
- S’il perd, soustrayez le montant de la mise de son solde;
- En cas d’égalité, ne modifiez pas son solde.
2. Ajout de la logique de mise en JavaScript
- Avant de distribuer les cartes, demandez au joueur de placer une mise. Cette mise doit être :
- Inférieure ou égale à son solde actuel;
- Supérieure à 0.
- Une fois la mise acceptée, commencez la partie.
- À la fin de la partie :
- Si le joueur gagne, ajoutez le montant de la mise à son solde;
- Si le joueur perd, soustrayez le montant de la mise;
- En cas d’égalité, le solde reste inchangé;
- Si le solde du joueur atteint 0, désactivez la possibilité de jouer (bouton de tirage) et affichez un message de fin de partie indiquant qu’il n’a plus d’argent pour continuer à jouer.
3. Réinitialisation et rejouer
- Ajoutez un bouton Rejouer qui permet de recommencer une nouvelle partie tout en conservant le solde actuel.
- Si le joueur décide de rejouer après avoir perdu tout son argent, proposez de réinitialiser son solde à 1000 unités pour recommencer une nouvelle session de jeu.