Coin - le jeu de la pièce

Description

Vous connaissez peut-être le principe, c'est souvent utilisé dans les fêtes de village, c'est un tour de passe-passe : vous avez 3 pots devant vous, et 1 pièce est cachée dans l'un d'eux...

Votre mission : trouver la pièce en sélectionnant le bon pot.

C'est assez facile de gagner, mais cela réfère à une grande partie de chance...

Source / Exemple :


'Le but de ce jeu est simple : trouver la pièce.
'Les labels 'r' et 'oldr' sont créés auparavant.
'L'interval du timer1 est de 2500 ms au début seulement (pour la présentation)
'L'interval du timer2 est de 1 ms
'Au début, tous les label sont cachés
'au chargement de la feuille, ils deviennent visibles
'Le timer1 permet de positionner la pièce en fonction de r
'r est le chiffre généré entre 1 et 3
'
'Il y a 1 label caché derrière chaque pot,
'c'est ce qui permet de mettre la pièce en fonction de r:
'si r=1, alors la pîèce a pour position la position du label
'qui est sous le pot bleu
'si r=2, alors la pîèce a pour position la position du label
'qui est sous le pot vert
'si r=3, alors la pîèce a pour position la position du label
'qui est sous le pot rouge

Private Sub Form_Load()
'On détermine d'abord le chiffre qui va donner la position de la pièce
Randomize
r = Int(Rnd * 3 + 1)
'Pour la présentation, on positionne la pièce sous le premier pot
piece.Left = labl1.Left
piece.Top = labl1.Top
piece.Visible = True 'on rend la pièce visible
'On rend les labels principaux visibles
Label1.Visible = True
Label2.Visible = True
'pot est le label qui indique quel pot est choisi (quand on clique sur un pot)
pot.Visible = True
'On active les timer qui permettra les différentes actions
Timer1.Enabled = True
End Sub

Private Sub Picture1_Click()
'On détermine la couleur du pot qui contiendra la pièce
'Pour donner plus tard la position de la pièce :
'Pot bleu, pot vert, ou pot rouge
If r = 1 Then
solution = "bleu"
Else
If r = 2 Then
solution = "vert"
Else
If r = 3 Then
solution = "rouge"
End If
End If
End If
'Si on clique sur le pot bleu :
    pot = "Pot bleu." 'Le label 'pot' dit quel pot est choisi
    'On cache les pots, de façon à ce que le joueur voit où était la pièce
    Picture1.Visible = False
    Picture2.Visible = False
    Picture3.Visible = False
    'Si la pièce se trouve sous le pot bleu, alors c'est gagné
    If piece.Left = labl1.Left And piece.Top = labl1.Top Then
    'On propose au joueur de rejouer
    message = MsgBox("Bravo, vous avez trouvé la pièce !" + vbCrLf + vbCrLf + "Voulez-vous rejouer ?", vbYesNo, "Piece")
    'Si il accepte :
    If message = vbYes Then
    oldr = r 'On mémorise r pour que, plus tard, ça ne retombe pas sur la même valeur
    'On désactive le timer1 pour le réactiver une fois r régénéré
    Timer1.Enabled = False
    Randomize
    r = Int(Rnd * 3 + 1)
    'r est régénéré
    Timer1.Interval = "1" 'On change l'interval du timer1 pour que ça aille plus vite
    Timer1.Enabled = True 'On réactive le timer1
    Else 'Par contre,
    'Si il refuse :
    If message = vbNo Then 'alors
    Unload Me 'On décharge la feuille (on quitte)
    End If
    End If
    'On met fin à la fonction pour passer au cas contraire
    Else
    'Si la pièce n'est pas sous le pot bleu, alors c'est pas bon
    'On propose au joueur de retenter sa chance
    'Puis on lui donne la vrai position de la pièce avec la fonction 'solution'
    message = MsgBox("Non, ce n'était pas le pot rouge... c'était le pot " + solution + "." + vbCrLf + vbCrLf + "Voulez-vous retenter votre chance ?", vbYesNo, "Piece")
    'Si le joueur accepte de rejouer :
    'On fait comme précédemment :
    If message = vbYes Then
    oldr = r 'On mémorise r
    Timer1.Enabled = False 'On désactive temporairement le timer1
    'On régénère r
    Randomize
    r = Int(Rnd * 3 + 1)
    Timer1.Interval = "1" 'On change l'interval du timer1 pour que ça aille plus vite
    Timer1.Enabled = True 'On réactive le timer1
    Else
    'Si le joueur refuse de rejouer,
    If message = vbNo Then
    Unload Me 'Alors on décharge la feuille
    End If
    End If
    End If
End Sub

Private Sub Picture2_Click()
'C'est pareil que pour la picture1,
'On détermine la solution de la position de la pièce
If r = 1 Then
solution = "bleu"
Else
If r = 2 Then
solution = "vert"
Else
If r = 3 Then
solution = "rouge"
End If
End If
End If
'Si on clique sur la picture2
    pot = "Pot vert." 'Alors on indique le choix du joueur
    'On montre où était la pièce
    Picture1.Visible = False
    Picture2.Visible = False
    Picture3.Visible = False
    'Si la pièce est sous le pot vert, alors c'est gagné
    If piece.Left = labl2.Left And piece.Top = labl2.Top Then
    message = MsgBox("Bravo, vous avez trouvé la pièce !" + vbCrLf + vbCrLf + "Voulez-vous rejouer ?", vbYesNo, "Piece")
    'On propose de rejouer
    'S'il accepte :
    'Pareil que la picture1
    If message = vbYes Then
    oldr = r
    Timer1.Enabled = False
    Randomize
    r = Int(Rnd * 3 + 1)
    Timer1.Interval = "1"
    Timer1.Enabled = True
    Else
    'S'il refuse :
    'Pareil que la picture1
    If message = vbNo Then
    Unload Me
    End If
    End If
    'On met fin à la fonction
    'Pour donner place au cas contraire
    Else
    message = MsgBox("Non, ce n'était pas le pot rouge... c'était le pot " + solution + "." + vbCrLf + vbCrLf + "Voulez-vous retenter votre chance ?", vbYesNo, "Piece")
    'On propose de rejouer
    'S'il accpete :
    'Pareil que la picture1
    If message = vbYes Then
    oldr = r
    Timer1.Enabled = False
    Randomize
    r = Int(Rnd * 3 + 1)
    Timer1.Interval = "1"
    Timer1.Enabled = True
    Else
    'S'il refuse :
    'Pareil que la picture1
    If message = vbNo Then
    Unload Me
    End If
    End If
    End If
End Sub

Private Sub Picture3_Click()
'Pareil que précédemment
If r = 1 Then
solution = "bleu"
Else
If r = 2 Then
solution = "vert"
Else
If r = 3 Then
solution = "rouge"
End If
End If
End If
'On indique le choix du joueur
    pot = "Pot rouge."
    Picture1.Visible = False
    Picture2.Visible = False
    Picture3.Visible = False
    'Si la pièce est sous le pot rouge :
    If piece.Left = labl3.Left And piece.Top = labl3.Top Then
    'On propose de rejouer
    message = MsgBox("Bravo, vous avez trouvé la pièce !" + vbCrLf + vbCrLf + "Voulez-vous rejouer ?", vbYesNo, "Piece")
    'S'il accepte :
    If message = vbYes Then
    Timer1.Enabled = False
    oldr = r
    Randomize
    r = Int(Rnd * 3 + 1)
    Timer1.Interval = "1"
    Timer1.Enabled = True
    Else
    'S'il refuse :
    If message = vbNo Then
    Unload Me
    End If
    End If
    'On met fin à la fonction
    'Pour donner place au cas contraire :
    Else
    'Si la pièce n'est pas sous le pot rouge :
    message = MsgBox("Non, ce n'était pas le pot rouge... c'était le pot " + solution + "." + vbCrLf + vbCrLf + "Voulez-vous retenter votre chance ?", vbYesNo, "Piece")
    'On propose de rejouer
    'S'il accepte :
    If message = vbYes Then
    oldr = r
    Timer1.Enabled = False
    Randomize
    r = Int(Rnd * 3 + 1)
    Timer1.Interval = "1"
    Timer1.Enabled = True
    Else
    'S'il refuse
    If message = vbNo Then
    Unload Me
    End If
    End If
    End If
End Sub

Private Sub Timer1_Timer()
'Voici le timer qui sert au bon fonctionnement du programme
'On montre les 3 pots
    Picture1.Visible = True
    Picture2.Visible = True
    Picture3.Visible = True
'On va positionner la pièce en fonction de r
    Select Case r
    Case 1 'Si r = 1
    'On positionne la pièce sous le pot bleu
    piece.Left = labl1.Left
    piece.Top = labl1.Top
    Case 2 'Si r = 2
    'On positionne la pièce sous le pot vert
    piece.Left = labl2.Left
    piece.Top = labl2.Top
    Case 3 'Si r = 3
    'On positionne la pièce sous le pot rouge
    piece.Left = labl3.Left
    piece.Top = labl3.Top
    End Select 'On met fin à la sélection de r
    'On ferme le timer, pour pas qu'il déplace la pièce tout le temps...
    Timer1.Enabled = False
End Sub

Private Sub Timer2_Timer()
'Ce timer a pour rôle de détecter si la position de la pièce est la même que précédemment
    If r = oldr Then 'Si le nouveau r est égal à l'ancien, alors là, il faut agir !
    'On régénère alors r de façon à ce que ce ne soit pas le même
    Randomize
    r = Int(Rnd * 3 + 1)
    End If
'Voilà, ce timer est responsable de la sécurité jusqu'à la fin du programme !
End Sub

Conclusion :


Voilà, j'espère que ce jeu vous plaira...

Moi, personnellement, je trouve ce jeu assez sympa.
Maintenant, à vous de juger...

Laissez vos commentaires !

Merci, et bonne prog ;)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.