begin process at 2008 09 06 00:41:23
1 237 606 membres
8 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : au secours j'ai besoin d'aide [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (rien_a_voir)

au secours j'ai besoin d'aide le 20/04/2005 16:14:18

rien_a_voir

je débute en visual basic et on m'a donner un exercice à faire et je n'y arrive pas...

je vous cite ce fameux exercice:

"une partie consiste à lancer un certain nombrede fois un dé à six faces numérotées de 1 à 6. A chaque lancer, le gain obtenu est fonction du résultat du lancer, il est donné dans le tableau suivant:
               -  1,2...........-2€
               -   3.............-1€
               -   4,5............2€
               -   6...............7€

Le jeu s'arrête lorsque le joueur obtient, àdeux lancers consécutifs, le même résultat.
La mise est de 1€ pour chaque partie.
Tous les lancers sont pris en compte pour le calcul du gain total.

On veut écrire un algorithme qui permet de simuler une partie et affiche, pour chaque lancer, le numéro obtenu et, à la fin de la partie, le gain total (positif, nul ou négatif) du joueur."

j'ai commencé quelquechose mais ça ne fonctionne pas et je suis en train de craquer!!!!

Private Sub CommandButton3_Click()
Dim D, D2, Diff, G As Integer

G = -1

Do
D = Int(6 * Rnd() + 1)
    MsgBox (D)
    If D < 3 Then
    G = G + -2
        Else
        If D = 3 Then
        G = G + -1
            Else
            If D < 6 Then
            G = G + 2
            Else: G = G + 7
            End If
        End If
    End If
D2 = Int(6 * Rnd() + 1)
    MsgBox (D2)
    If D2 < 3 Then
    G = G + -2
        Else
        If D2 = 3 Then
        G = G + -1
            Else
            If D2 < 6 Then
            G = G + 2
            Else: G = G + 7
            End If
        End If
    End If
Diff = D2 - D

Loop Until Diff = 0
MsgBox "gain total : " & G & " €."

End Sub

je vous remercie de m'aider quelques peu......

rien à voir...


Re : au secours j'ai besoin d'aide le 20/04/2005 16:27:00

nostra78
Ca marche ton truc je vois pas le pb

Re : au secours j'ai besoin d'aide le 20/04/2005 16:29:56

nostra78
Excuse j'ai rien dit

Re : au secours j'ai besoin d'aide le 20/04/2005 16:31:32

rien_a_voir
ben voilà c mon problème du jour... merci de t'etre pencher sur mon cas...

rien à voir...

Re : au secours j'ai besoin d'aide le 20/04/2005 16:39:01

nostra78

Je propose ca
Peut être amélioré

Private Sub CommandButton1_Click()
Dim D, D2, Diff, G As Integer

G = -1

Debut:
D = Int(6 * Rnd() + 1)
    MsgBox (D)
    If D < 3 Then
    G = G + -2
        Else
        If D = 3 Then
        G = G + -1
            Else
            If D < 6 Then
            G = G + 2
            Else: G = G + 7
            End If
        End If
    End If
Diff = D2 - D
If Diff = 0 Then
GoTo Fin
End If
D2 = Int(6 * Rnd() + 1)
    MsgBox (D2)
    If D2 < 3 Then
    G = G + -2
        Else
        If D2 = 3 Then
        G = G + -1
            Else
            If D2 < 6 Then
            G = G + 2
            Else: G = G + 7
            End If
        End If
    End If
Diff = D2 - D
If Diff <> 0 Then
GoTo Debut
End If
Fin:
MsgBox "gain total : " & G & " €."

End Sub


Re : au secours j'ai besoin d'aide le 20/04/2005 16:47:14

rien_a_voir
je te remercie ça fonctionne bien, mais sans vouloir abuser il faut que j'écrive le programme en VB et en algorithme nomal genre:

algorithme Dés
   lexique
        identificateur         type            rôle


   début Dés
      écrire(".....;

je sais pas comment traduire du VB en algo, tu pourrai me donner un coup de main?

je te remercie pour ta réponse et ta rapidité....félicitation...

rien à voir...

Re : au secours j'ai besoin d'aide le 20/04/2005 16:54:19

crenaud76

Moi, je proposerait plutot ceci :

Option Explicit

Private Sub Command1_Click()
Dim OldDe As Long, De As Long, Gain As Long

    Gain = 0
    OldDe = 0
    De = 1
    Do While OldDe <> De
        OldDe = De
        Gain = Gain - 1
        De = Int(6 * Rnd() + 1)
        Select Case De
            Case 1, 2
                Gain = Gain - 2
            Case 3
                Gain = Gain - 1
            Case 4, 5
                Gain = Gain + 2
            Case 6
                Gain = Gain + 7
        End Select
        Debug.Print "Lancé = " & De & vbCrLf & "Gain = " & Gain
    Loop
    Debug.Print "Gain final = " & Gain
End Sub

Private Sub Form_Load()
    Randomize
End Sub

Christophe R


Re : au secours j'ai besoin d'aide le 20/04/2005 16:59:06

nostra78
J'avoue que le code de crenaud76 est plaisant à lire. Celui que je t'ai donné marche mais n'est pas des plus

Re : au secours j'ai besoin d'aide le 20/04/2005 17:01:24

crenaud76
Nostra78 < Je dirais même plus !! Mettre des Goto, c'est beuuuurrrrrkkkkkkk

Christophe R

Re : au secours j'ai besoin d'aide le 20/04/2005 17:01:53

rien_a_voir

merci vous m'avez sauver la vie!!!!!!!!

et en plus vous étes trop rapide...

rien à voir...


[Page 1 Page 2]
Classé sous : end, lancer, partie, d2, gain

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS