# 🎲 Mastermind

## I - Fonctionnement du jeu

Le principe est simple :  
La machine choisit un code secret à 4 chiffres (exemple : `4827`).  
Le joueur doit le deviner en un nombre limité d’essais, en fonction de la difficulté choisie.

À chaque tentative :  
- Rouges = chiffres corrects et bien placés.  
- Blancs = chiffres corrects mais mal placés.  

Le joueur gagne s’il trouve le code avant d’épuiser ses essais.


## II - Déroulement

1. Lancer le programme :

   ```bash
   python mastermind.py
   ```

2. Répondre à la question :

   ```
   Êtes-vous prêt ? (oui/non)
   ```

3. Choisir la difficulté :

   ```
   1 - Facile (15 essais)
   2 - Moyen  (10 essais)
   3 - Difficile (5 essais)
   ```

4. Entrer un nombre à 4 chiffres (`1000` à `9999`).  

   On peut taper `q` pour abandonner la partie.

## III - Exemple de partie

```
**************************************************
Bienvenue sur Mastermind !
Devinez le code secret à 4 chiffres choisi par la machine.

Êtes-vous prêt ? (oui/non)
> oui

Choisissez votre niveau de difficulté :
1 - Facile (15 essais)
2 - Moyen  (10 essais)
3 - Difficile (5 essais)
Votre choix (1/2/3) : 2

Entrez un nombre entre 1000 et 9999 (ou 'q' pour abandonner) : 1234
→ 1 chiffre bien placé et 2 chiffres corrects mais mal placés.
Il vous reste 9 essais.

Entrez un nombre entre 1000 et 9999 (ou 'q' pour abandonner) : 4827
🎉 Bravo ! Vous avez trouvé le code secret ! 🎉
Code : 4827 — en 2 essais.

        .''
     .'':.  .''.     *   *    *
   .':  :''  :  '.        *
  :  :  :     :   :   *         *
  :  :__:_  __:   :        *
  '._____''_____.'    *
        🏆  Mastermind Winner 🏆
```

## IV - Structure du code

- `demander_oui_non()` → gère les réponses oui/non  

- `choisir_difficulte()` → définit le nombre d’essais  

- `generer_code_secret()` → crée un code aléatoire  

- `saisir_essai()` → demande et valide la saisie joueur  

- `compter_rouges()` → chiffres bien placés  

- `compter_blancs()` → chiffres corrects mais mal placés  

- `afficher_feedback()` → affiche les résultats intermédiaires  

- `afficher_victoire()` / `afficher_defaite()` → écrans de fin  

- `jouer()` → boucle principale  
