Bonjour, je fais appel à vos service afin résoudre un petit problème.
Je réalise un projet sur vba sur le jeu du Yahtzee. Le jeu est assez simple, on lance 5 dés au hasard en espérant faire la meilleure combinaison possible (brelan, full, suite,etc...). Pour créer les 5 dés j'ai donc fait :
puis pour que les dés soient de 1 à 6 et pour voir les résultats:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim d1 As Integer Dim d2 As Integer Dim d3 As Integer Dim d4 As Integer Dim d5 As Integer
Enfin au niveau des combinaisons voici par exemple ce que j'ai fait si on obtenait un full:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 d1 = Int(Rnd() * 5 + 1) d2 = Int(Rnd() * 5 + 1) d3 = Int(Rnd() * 5 + 1) d4 = Int(Rnd() * 5 + 1) d5 = Int(Rnd() * 5 + 1) MsgBox ("Vos résultats sont : " & d1 & " ," & d2 & " ," & d3 & " ," & d4 & " ," & d5)
Vous l'aurez compris ma méthode a été de réunir toutes les solutions possibles de full
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 If ((d1 = d2) And (d2 = d3) And (d4 = d5)) Or ((d1 = d2) And (d2 = d4) And (d3 = d5)) Or ((d1 = d2) And (d2 = d5) And (d3 = d4)) Or ((d1 = d3) And (d3 = d4) And (d2 = d5)) Or ((d1 = d3) And (d3 = d5) And (d2 = d4)) Or ((d1 = d4) And (d4 = d5) And (d2 = d3)) Or ((d2 = d3) And (d3 = d4) And (d5 = d1)) Or ((d2 = d4) And (d4 = d5) And (d3 = d1)) Or ((d3 = d4) And (d4 = d5) And (d1 = d2)) Then MsgBox ("Bravo vous avez fait un Full")
Mon problème est que je ne trouve pas le moyen de réunir toutes les solutions pour obtenir une suite de 4 chiffres (1,2,3,4 ou 2,3,4,5 ou 3,4,5,6)
voici ce que j'ai essayé de faire :
En gros pour la suite 1,2,3,4 j'ai écris que d1 ou d2 ou d3 ou d4 devrait être égale à 1 ou 2 ou 3 ou 4 mais pas à 5 car sinon on aurait une suite de 5 chiffres, et j'ai recommencé pour les 2 autres suites de 4 chiffres possibles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If ((d1 Or d2 Or d3 Or d4 Or d5 = 1) And (d1 Or d2 Or d3 Or d4 Or d5 = 2) And (d1 Or d2 Or d3 Or d4 Or d5 = 3) And (d1 Or d2 Or d3 Or d4 Or d5 = 4) And (d1 And d2 And d3 And d4 And d5 <> 5)) Or ((d1 Or d2 Or d3 Or d4 Or d5 = 2) And (d1 Or d2 Or d3 Or d4 Or d5 = 3) And (d1 Or d2 Or d3 Or d4 Or d5 = 4) And (d1 Or d2 Or d3 Or d4 Or d5 = 5) And (d1 And d2 And d3 And d4 And d5 <> 1) And (d1 And d2 And d3 And d4 And d5 <> 6)) Or ((d1 Or d2 Or d3 Or d4 Or d5 = 3) And (d1 Or d2 Or d3 Or d4 Or d5 = 4) And (d1 Or d2 Or d3 Or d4 Or d5 = 5) And (d1 Or d2 Or d3 Or d4 Or d5 = 6) And (d1 And d2 And d3 And d4 And d5 <> 2)) Then MsgBox ("Bravo vous avez fait une suite")
Voilà, j'espère que vous trouverez la solution, ou peut être une méthode plus simple
Merci d'avance pour votre aide !
Partager