Machine à sous

Bonjour,

Pour faire suite aux conversations avec Moul, je suis en cours de développement d'une slot machine à 5 rouleaux avec 99 lignes de gains possibles !

Je me suis arrêté à 99 lignes car cela représente le nombre de possibilité de ligne entre les images des chaque rouleau avec un contact minimum en diagonale, ce qui veut dire qu'une combinaison partant de l'image en haut à gauche de la machine ne peut que passer par l'image en haut de la roue à sa droite ou par celle du milieu mais ne peut "sauter" à celle du bas.

Le test des gains avec 18 symboles et les combinaisons 5/5, 4+1 étoile, 4/5 en continue, 3 + 2 étoiles, 2 + 3 étoiles et 3 en continue ne prend que 0,04 seconde sur ma machine !

Je suis plutôt content du résultat, et je dois maintenant réfléchir aux combinaisons particulières, voir les probabilités de sortie pour ajuster les gains au coût de jeu des différentes lignes...

Merci une fois de plus à Moul pour "cette relance"!

@ bientôt

LouReeD

Bonjour LouReed,

Eh bien dit donc à ce que je vois, je vous est vraiment motivé !

Je n'ai malheureusement pas eu le temps de regarder cette nouvelle machine

Mais 99 lignes de gains, ça commence a faire !

Mais n'est on pas certain de gagner a chaque tour ? Il va sûrement falloir des tableaux pour les roues immenses non ?

En tout cas bonne continuation

Bonsoir Moul !

De quel tableaux parlez vous ?

En fait tout se passe en tableau VBA avec des boucles et des variables qui passent à True ou restent à False si la ligne est comptabilisée comme gagnante ou pas.

Donc un tableau des images affichées, un tableau des différentes combinaison avec comme valeur le numéro des images qui composent cette combinaison pour chaque roue : exemple la ligne horizontale de gain se traduit par :

roue 1, image 3 (c'est la troisième image visible de la roue 1), roue 2, image 3, roue 3 image 3 etc...

Ensuite un tableau de 99 lignes "construit" en fonction des deux premiers :

LG(1) = nom des images correspondant à la combinaison 1

LG(1) = tableau des image(roue 1)(image(roue1,combinaison 1) etc...

Un tableau de ligne déjà gagnée ou pas (vrai ou faut)

Après on boucle sur les différents symboles et sur le tableau LG() avec un test de la ligne déjà gagnante

For i = 0 to 18 ' boucle des symboles

For j=0 to 98 ' boucle du tableau des 99 combinaisons construites grâce au tableau de combinaison et d'image

Si ligne gagnante = false et len(replace(lg(j),chr(65+i),"")) = 0 then ' on a une ligne de 5 symboles identiques c'est gagné !

du coup ligne gagnante passe à true, du coup cette ligne pour les autres symbole ne sera plus testée !

Une partie du code :

Sub Vérifications(TabImgAff)
    Application.ScreenUpdating = False
    Dim CombiLigneImg(0 To 98, 0 To 4)
    Dim LG(0 To 98),  Temp, Cpt5, Cpt41, Cpt4, Cpt32, Cpt23, Cpt3
    Dim I, J, K, X, Y, LV(0 To 98)
    ' mise en place des différentes combinaisons grâce à la feuille de combinaison
    X = 2
    Y = 2
    With Feuil2
        For K = 0 To 98
            For J = 0 To 4
                For I = 0 To 2
                    If .Cells(X + I, Y + J).Interior.Color = RGB(255, 0, 0) Or .Cells(X + I, Y + J).Interior.Color = RGB(0, 255, 0) Then
                        CombiLigneImg(K, J) = I + 2
                        Exit For
                    End If
                Next I
            Next J
            Y = Y + 6
            If .Cells(X, Y).Interior.Color = 0 Then
                X = X + 4
                Y = 2
            End If
        Next K
    End With

    ' initialisation des compteurs de code administrateur
    Cpt5 = 0: Cpt41 = 0: Cpt4 = 0: Cpt3 = 0: Cpt32 = 0: Cpt23 = 0

    ' création de la liste des combinaison en fonction du tirage
    For I = 0 To 98
        LG(I) = TabImgAff(0)((CombiLigneImg(I, 0) - 1)) & TabImgAff(1)((CombiLigneImg(I, 1) - 1)) & TabImgAff(2)((CombiLigneImg(I, 2) - 1)) & TabImgAff(3)((CombiLigneImg(I, 3) - 1)) & TabImgAff(4)((CombiLigneImg(I, 4) - 1))
    Next I

    For J = 0 To 8
        For I = 0 To 98
            If LV(I) = False Then
                ' 5
                If Len(Replace(LG(I), Chr(65 + J), "")) = 0 Then
                    Cpt5 = Cpt5 + 1
                    LV(I) = True
                ' 4 + A
                ElseIf Len(Replace(LG(I), "A", "")) = 4 And Len(Replace(LG(I), Chr(65 + J), "")) = 1 Then
                    Cpt41 = Cpt41 + 1
                    LV(I) = True
                ' 4
                ElseIf Len(Replace(Left(LG(I), 4), Chr(65 + J), "")) = 0 Or Len(Replace(Right(LG(I), 4), Chr(65 + J), "")) = 0 Then
                    Cpt4 = Cpt4 + 1
                    LV(I) = True
                ' 3A + 2
                ElseIf Len(Replace(LG(I), "A", "")) = 2 And Len(Replace(LG(I), Chr(65 + J), "")) = 3 Then
                    Cpt23 = Cpt23 + 1
                    LV(I) = True
                '2A +3
                ElseIf Len(Replace(LG(I), "A", "")) = 3 And (Len(Replace(Left(LG(I), 3), Chr(65 + J), "")) = 0 Or _
                       Len(Replace(Mid(LG(I), 2, 3), Chr(65 + J), "")) = 0 Or _
                       Len(Replace(Right(LG(I), 3), Chr(65 + J), "")) = 0) Then
                    Cpt32 = Cpt32 + 1
                    LV(I) = True
                ' 3
               ElseIf Len(Replace(Left(LG(I), 3), Chr(65 + J), "")) = 0 Or Len(Replace(Right(LG(I), 3), Chr(65 + J), "")) = 0 Or Len(Replace(Mid(LG(I), 2, 3), Chr(65 + J), "")) = 0 Then
                    Cpt3 = Cpt3 + 1
                    LV(I) = True
               End If
            End If
        Next I
    Next J

    Erase LV

    MsgBox (" 5 alignées : " & Cpt5 & Chr(10) & _
            " 4 + 1 étoile : " & Cpt41 & Chr(10) & _
            " 4 alignés : " & Cpt4 & Chr(10) & _
            " 3 + 2 étoiles : " & Cpt32 & Chr(10) & _
            " 3 étoiles + 2 : " & Cpt23 & Chr(10) & _
            " 3 alignés : " & Cpt3)
End Sub

Dans le commentaires le '5 veut dire recherche d'une ligne de 5 symboles et le '3A+2 recherche une ligne avec 3 étoiles (bonus) et deux symboles identiques, etc...

@ bientôt

LouReeD

Bonsoir, ou bonjour vu l'heure...

Je suis encore en train de flâner sur mon BlindTest moi !

Un problème avec le site pour la section "Téléchargements" m'empêche de faire quoi que ce soit...

Après un cours échange avec l'administrateur, il m'a dit de patienter le mois prochain.

Il devrait joindre l'ensemble des comptes pour que ceux-ci est accès à toutes les sections (Forum, Téléchargements ...)

Enfin bref, la n'est pas le sujet !

Pour le tableau, je parlais du tableau des roues et des images que celles-ci peuvent avoir.

Pour moi 99 Ligne indiquent beaucoup, beaucoup de possibilité.

Ou je n'ai peut être pas saisi ce que vous faisiez... Shame on Me !

J'ai pas réellement analysé la programmation, il est difficile de se donner une idée de comment cette macro fonctionne sans fichier.

D'ailleurs, en retournant sur la page de téléchargement de votre Machine à Sous, je ne vois que l'ancienne version.

Est-ce normal ou est ce aussi du au soucis de la plateforme "Téléchargement" du site ?

A bientôt.

Rechercher des sujets similaires à "machine"