Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Le Mot Le Plus Long

  • Initiateur de la discussion Initiateur de la discussion halecs93
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

halecs93

XLDnaute Impliqué
Bonjour à tous,


C’est encore du bricolage, mais le résultat est plutôt satisfaisant pour l’instant. J’aimerais l’améliorer afin de pouvoir jouer à deux joueurs, avec un comptage des points. Si l’un des joueurs est l’ordinateur, ce n’est pas un problème : on le considère simplement comme un joueur à part entière.


Le tout, idéalement, sans connexion en ligne.


Des idées ou des suggestions ?

Je poste le fichier ici, vu sa lourdeur : https://www.swisstransfer.com/d/73ade0ae-4513-426e-a0f8-837edeec0ff2

Merci beaucoup
 
Voici le code corrigé des fonctions PiocheVoyelle et PiocheConsonne.
VB:
Function PiocheVoyelle() As String
Dim i As Integer
Dim Tirage As Integer

    PiocheVoyelle = ""
    With Sheets(f_CARTES)
        If .Range("TOTAL_VOYELLES") <= 0 Then
            MsgBox "Il n'y a plus de voyelle dans le sabot !", vbExclamation, "Le Mot le Plus Long"
        Else
            Randomize
            Tirage = Int(.Range("TOTAL_VOYELLES") * Rnd) + 1
            ' Balayage des voyelles
            For i = 1 To Len(VOYELLES)
                Select Case True
                    Case .Cells(6, i) >= Tirage And .Cells(5, i) > 0
                        'on est sur la voyelle tirée et est dans le sabot
                        PiocheVoyelle = .Cells(1, i)
                        .Cells(5, i) = .Cells(5, i) - 1
                        Application.Speech.Speak PiocheVoyelle
                        Exit For
                    Case .Cells(6, i) >= Tirage And .Cells(5, i) = 0
                        'La voyelle tirée n'est pas dans le sabot => il faut faire un nouveau tirage
                        'Ce cas ne doit pas arriver
                        Exit For
                    Case .Cells(6, i) < Tirage
                        'ce n'est pas la voyelle tirée  => on passe à la suivante
                End Select
            Next i
        End If
    End With

End Function
Function PiocheConsonne() As String
Dim i As Integer
Dim Tirage As Integer

    PiocheConsonne = ""
    With Sheets(f_CARTES)
        If .Range("TOTAL_CONSONNES") <= 0 Then
            MsgBox "Il n'y a plus de consonne dans le sabot !", vbExclamation, "Le Mot le Plus Long"
        Else
            Randomize
            Tirage = Int(.Range("TOTAL_CONSONNES") * Rnd) + 1
            ' Balayage des consonnes
            For i = Len(VOYELLES) + 1 To Len(VOYELLES) + Len(CONSONNES)
                Select Case True
                    Case .Cells(6, i) >= Tirage And .Cells(5, i) > 0
                        'on est sur la consonne tirée et est dans le sabot
                        PiocheConsonne = .Cells(1, i)
                        .Cells(5, i) = .Cells(5, i) - 1
                        Application.Speech.Speak PiocheConsonne
                        Exit For
                    Case .Cells(6, i) >= Tirage And .Cells(5, i) = 0
                        'La consonne tirée n'est pas dans le sabot => il faut faire un nouveau tirage
                        'Ce cas ne doit pas arriver
                        Exit For
                    Case .Cells(6, i) < Tirage
                        'ce n'est pas la consonne tirée  => on passe à la suivante
                End Select
            Next i
        End If
    End With

End Function

Quelques explications sur le tirage des lettres
Il s'appuie sur le tableau de la feuille Cartes
Le sabot des voyelles / consonnes est constitué des voyelles / consonnes de la ligne 4. Vous pouvez indiquer les valeurs de votre choix (la ligne 3 donne les valeurs correspondant à la fréquence dans les mots de la langue française pour un jeu de 33 voyelles et 70 consonnes).
Le tirage aléatoire est effectué à partir des valeurs de la ligne 5
A chaque tirage d'une Voyelle ou Consonne, la valeur correspondante en ligne 5 est décrémentée de 1 (la lettre tirée est retirée du sabot).
La probabilité de tirer une lettre déjà tirée diminue donc et est nulle si la valeur est 0.
Pour le tirage d'un nouveau mot, Bouton Vider, la ligne 5 est réinitialisée avec les valeurs de la ligne 4 (on reconstitue le sabot).
 
Code modifié...merci... en revanche..... lorsqu'il y a plusieurs "mot le plus long", l'énumération est vite très longue....je pense que lister les mots, sans les prononcer serait plus rapide
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…