TP: Realisation du Jeu du Pendu en VBA

Salut a tous,

je voudrais réaliser le jeu du Pendu en console dont voici une capture d’écran:

Bienvenue dans le Pendu !

Il vous reste 10 coups a jouer
Quel est le mot secret ? ******
Proposez une lettre : E

Il vous reste 9 coups a jouer
Quel est le mot secret ? ******
Proposez une lettre : A

Il vous reste 9 coups a jouer
Quel est le mot secret ? *A****
Proposez une lettre : O

Il vous reste 9 coups a jouer
Quel est le mot secret ? *A**O*
Proposez une lettre :
--------------------------------------------------------------------------------------

voici le déroulement d'une partie

Supposons que le mot caché soit ROUGE.
Vous proposez une lettre à l'ordinateur, par exemple la lettre A. L'ordinateur vérifie si cette lettre se trouve dans le mot caché.

À partir de là, deux possibilités :

    la lettre se trouve effectivement dans le mot : dans ce cas, on dévoile le mot avec les lettres qu'on a déjà trouvées ;

    la lettre ne se trouve pas dans le mot (c'est le cas ici, car A n'est pas dans ROUGE) : on indique au joueur que la lettre ne s'y trouve pas et on diminue le nombre de coups restants. Quand il ne nous reste plus de coups (0 coup), le jeu est terminé et on a perdu.

Dans un « vrai » Pendu, il y aurait normalement le dessin d'un bonhomme qui se fait pendre au fur et à mesure que l'on fait des erreurs. En console, ce serait un peu trop difficile de dessiner un bonhomme qui se fait pendre rien qu'avec du texte, on va donc se contenter d'afficher une simple phrase comme « Il vous reste X coups avant une mort certaine ».

Supposons maintenant que le joueur tape la lettre G. Celle-ci se trouve dans le mot caché, donc on ne diminue pas le nombre de coups restants au joueur. On affiche le mot secret avec les lettres qu'on a déjà découvertes, c'est-à-dire quelque chose comme ça :

Mot secret : ***G*

Si ensuite on tape un R, comme la lettre s'y trouve, on l'ajoute à la liste des lettres trouvées et on affiche à nouveau le mot avec les lettres déjà découvertes :

Mot secret : R**G*

Le cas des lettres multiples

Dans certains mots, une même lettre peut apparaître deux ou trois fois, voire plus !
Par exemple, il y a deux Z dans PUZZLE ; de même, il y a trois E dans ELEMENT.

Que fait-on dans un cas comme ça ? Les règles du Pendu sont claires : si le joueur tape la lettre E, toutes les lettres E du mot ELEMENT doivent être découvertes d'un seul coup :

Mot secret : E*E*E**

Il ne faut donc pas avoir à taper trois fois la lettre E pour que tous les E soient découverts.

Bonjour Jean, bonjour le forum,

Regarde le lien trouvé ici : https://www.excel-pratique.com/fr/telechargements/jeux/jeu-du-pendu-no42

bonjour ThauTheme,

merci pour le lien que tu m'as envoyé mais j'ai besoin de la version du Pendu avec macro.

bonjour le forum, voici un exemple du pendu en console vba.

Sub ProjetJeuDuPendu()
    Dim motSecret As String
    Dim lettre As String
    Dim lgMot As Long
    Dim coupRestant As Long
    Dim lettreTrouvee() As Variant
    Dim alerte As String
    Dim message As String
    Dim i As Integer
    Dim p As Long
    Dim Dico() As Variant

    message = MsgBox("xxx Bienvenu xxx ", vbInformation, "Jeu du PENDU")
    motSecret = PiocherMot(motSecret, Dico)
    lgMot = Len(motSecret)
    ReDim lettreTrouvee(lgMot)
    coupRestant = 10
         Do While coupRestant > 0 And Gagne(lettreTrouvee, motSecret) = 0
            alerte = MsgBox("Il Vous Reste : " & coupRestant & " Essais", vbInformation, "Jeu du PENDU")
            Call MasqueMot(lettre, motSecret, lettreTrouvee, p)
            lettre = UCase(lettre)
         If lettre = "" Then
            Do While (lettre = "")
               lettre = InputBox("Quel Est Le Mot Secret : " & motSecret & vbLf & vbLf & "Proposez Une Lettre : ", "Jeu du PENDU")
               lettre = UCase(lettre)
            Loop
         End If
         If Appartient(lettre, motSecret, lettreTrouvee) = False Then
            coupRestant = coupRestant - 1
         End If
             If Gagne(lettreTrouvee, motSecret) = 1 Then
                alerte = MsgBox("Gagne !" & Chr(10) & Chr(10) & "C'etait bien : " & motSecret, vbInformation, "Jeu du PENDU")
             Else
                Perdu coupRestant, motSecret
             End If
         Loop
End Sub
Rechercher des sujets similaires à "realisation jeu pendu vba"