Boucles, exercice

juju782

XLDnaute Nouveau
Bonjour

je devais réaliser ce programme:

On veut programmer le jeu "Pile ou face". L’utilisateur entre son choix [le programme demande à l’utilisateur de saisir] qui est comparé au choix fait au hasard par l'ordinateur. Si les deux valeurs sont égales l'utilisateur a gagné. Programmer dix [n] réalisations de ce jeu.
Voila ce que j'ai fais (ca marche) :

Sub pile()
Dim x As Integer
Dim i As Integer
Dim score As Integer
Dim p As String, q As String
score = 0
For i = 1 To 10
x = Int((Rnd * 2)) + 1
If x = 1 Then
p = "pile"
Else
p = "face"
End If
q = InputBox("Rentrez pile ou face")
If p = q Then
MsgBox ("bonne réponse")
score = score + 1
Else
MsgBox ("mauvaise réponse")
End If
Next
MsgBox ("vous avez gagner" & " " & score & " " & "fois")

End Sub




On me demande alors: "Modifier l'exercice précédent pour que maintenant le jeu s'arrête soit lorsque l'utilisateur répond "non" à une question posée soit lorsque le nombre de réalisations de ce jeu dépasse 10 "

Mais la je vois pas quoi rajouter ? ?
 

TooFatBoy

XLDnaute Barbatruc
Re : Boucles, exercice

Une réponse basée sur le premier exercice :
Code:
Sub pile()
Dim x As Integer
Dim i As Integer
Dim score As Integer
Dim p As String, q As String

score = 0
[COLOR="SeaGreen"]' For i = 1 To 10[/COLOR]
[COLOR="Red"]i = 0[/COLOR]
[COLOR="red"]Do[/COLOR]
    x = Int((Rnd * 2)) + 1
    If x = 1 Then
        p = "pile"
    Else
        p = "face"
    End If
    q = InputBox("Rentrez pile ou face")
    If p = q Then
        MsgBox ("bonne réponse")
        score = score + 1
    Else
        MsgBox ("mauvaise réponse")
    End If
[COLOR="seagreen"]' Next[/COLOR]
[COLOR="red"]    i = i + 1[/COLOR]
[COLOR="red"]    recommence = InputBox("voulez vous rejouez O/N")[/COLOR]
[COLOR="red"]Loop While i < 10 And recommence = "O"[/COLOR]
MsgBox ("vous avez gagné" & " " & score & " " & "fois")

End Sub

En vert ce qui ne sert plus et en rouge ce qui a été ajouté.


PS : tout à fait d'accord avec la remarque de Bruno, il est préférable de décaler vers la droite le code se situant à l'intérieur d'une boucle. On appelle cela l'indentation.
Tant que j'y suis, j'ajoute une autre remarque. Il est également préféable, à mon avis, de mettre le nom de la variable dans l'instruction Next, ce qui donne "Next i" au lieu de simplement "Next".
 
Dernière édition:

Statistiques des forums

Discussions
312 836
Messages
2 092 656
Membres
105 480
dernier inscrit
Galbius