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

XL 2016 jeu Motus

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 !

papychat1

XLDnaute Nouveau
Supporter XLD
Bonjour, un petit mot pour de l'aide s'il vous plait.
J'essaye de créer un jeu de motus
et je suis bloqué au moment de comparer le mot
pour afficher les lettres présentes à la mauvaise place.
En effet voir l'exemple où s'affiche le u alors que celui-ci est déjà placé
et qu'il n'en existe pas d'autre dans le mot.
Je pense qu'il faut établir une comparaison qui annule ce u si il est déjà bien placé,
Mais j'ai commencé à établir le mot en ligne 7 mais ne sait pas allé plus avant.
Merci pour votre aide
Cordialement
https://www.cjoint.com/c/OAzkzPHHlz5
 
Solution
petit problème,
Si la première lettre est en doublon dans le mot, elle devient jaune.
Cependant on peut contourner en affichant d'emblée qu'elle est verte.
Hello,
je ne sais pas avec quel code tu as résolu ce problème mais il risque d'y avoir le même genre de problème avec des doublons qui ne concernent
pas que la première lettre. Essaie donc avec KAKIS
Une solution qui me paraît plus complète consiste dans la boucle qui traite des lettres mal placées de passer les lettres qui sont
déjà en vert comme ceci par exemple :
VB:
  motADevinerO = motADeviner
    ' Vérifier la correspondance
    For i = 1 To longueurMot
        lettre = Mid(motPropose, i, 1)
        ' Lettre à la bonne position
        If Mid(motADeviner, i, 1) =...
Bonsoir Papychat, Sousou,

J'avais cherché mais point trouvé 😡 pour couvrir toutes les possibilités.

Avec la dernière PJ, un exemple qui "coince" :

Le premier E devrait être jaune car pas à la bonne place.
Le second E devrait être vert et non jaune car bien placé.
Le troisième E devrait ne pas être vert car mal placé.
 
Merci pour ton travail
je cherche aussi plus pour comprendre excel
car des jeux il en existe, donc ton avis me permet d'aller plus loin.
Je pense qu'il faut une comparaison entre chaque lettres de la ligne 7 et et sortir après chaque lettres identifiées qui sortent alors de la comparaison mais...
En tout cas merci beaucoup!
 
Hello,
A essayer :
VB:
    ' Vérifier la correspondance
    For i = 1 To longueurMot
        lettre = Mid(motPropose, i, 1)
        ' Lettre à la bonne position
        If Mid(motADeviner, i, 1) = lettre Then
           Mid(motADeviner, i, 1) = "?"
            ws.Cells(ligne, i).Interior.Color = RGB(0, 255, 0) ' Vert
            couleurTrouve = True
        Else
          ws.Cells(ligne, i).Interior.Color = RGB(200, 200, 200) ' Gris
        End If
    Next i
    For i = 1 To longueurMot
        lettre = Mid(motPropose, i, 1)
        For j = 1 To longueurMot
                If Mid(motADeviner, j, 1) = lettre Then
                    Mid(motADeviner, j, 1) = "?"
                    ws.Cells(ligne, i).Interior.Color = RGB(255, 255, 0) ' Jaune
                End If
        Next j
    Next i
Le principe : Dans le mot à deviner on remplace ce que l'on a trouvé comme correspondance par un "?"


Ami calmant, J.P
 
Bonsoir

jurassic pork​

Bravo
je viens d'essayer ton code a priori pas de problème cela résout ma demande!
Je vais continuer de tester et finalement c'est bien plus simple que je ne pensais
Un grand merci à toi
Bon week-end
Bien cordialement
JML
 
petit problème,
Si la première lettre est en doublon dans le mot, elle devient jaune.
Cependant on peut contourner en affichant d'emblée qu'elle est verte.
Bon dimanche

 
petit problème,
Si la première lettre est en doublon dans le mot, elle devient jaune.
Cependant on peut contourner en affichant d'emblée qu'elle est verte.
Hello,
je ne sais pas avec quel code tu as résolu ce problème mais il risque d'y avoir le même genre de problème avec des doublons qui ne concernent
pas que la première lettre. Essaie donc avec KAKIS
Une solution qui me paraît plus complète consiste dans la boucle qui traite des lettres mal placées de passer les lettres qui sont
déjà en vert comme ceci par exemple :
VB:
  motADevinerO = motADeviner
    ' Vérifier la correspondance
    For i = 1 To longueurMot
        lettre = Mid(motPropose, i, 1)
        ' Lettre à la bonne position
        If Mid(motADeviner, i, 1) = lettre Then
            Mid(motADeviner, i, 1) = "?"
            ws.Cells(ligne, i).Interior.Color = RGB(0, 255, 0) ' Vert
        Else
            ws.Cells(ligne, i).Interior.Color = RGB(200, 200, 200) ' Gris
        End If
    Next i
    For i = 1 To longueurMot
        If Not ws.Cells(ligne, i).Interior.Color = RGB(0, 255, 0) Then
           lettre = Mid(motPropose, i, 1)
           For j = 1 To longueurMot
                If Mid(motADeviner, j, 1) = lettre Then             
                       ws.Cells(ligne, i).Interior.Color = RGB(255, 255, 0) ' Jaune
                       Mid(motADeviner, j, 1) = "?"
                End If
           Next j
        End If
    Next i
    ' Vérifier si le mot est trouvé
    If motPropose = motADevinerO Then
        MsgBox "Bravo ! Vous avez trouvé le mot !", vbInformation
        Exit Sub
    End If
A noter que j'ai aussi ajouté une variable de sauvegarde motADevinerO car pendant le traitement on altère la variable motADeviner.



Ami calmant, J.P
 
Dernière édition:
Merci beaucoup
petit problème pour moi il affiche pour motAdeviner0 variable non définie.

Bien cordialement
jml
 
- 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…