Option Explicit
Dim LbCroupier As ListBox, LbBJ As ListBox
Dim PM#, MB#, MJ# 'PlayerMoney, MoneyBank, Mise du Joueur
Dim POrdi%, PJoueur%, BJ As Byte 'BJ = 1 si Black Jack
Private Sub BJck(Carte$, k1 As Byte, k2 As Byte) 'cette sub est appelée par la sub Attente_Click()
Dim chn$, s%, m#
If InStr(1, "dix valet dame roi", Carte, 1) = 0 Then Exit Sub 'ni as, ni 10, ni valet, ni dame, ni roi
If [B7] <> [B8] Or [B7] <> [F7] Or [B7] <> [F8] Then Exit Sub 'un de {as à roi}, mais pas 4× le même !
'si on continue à partir d'ici, c'est qu'il y a eu 4 as, ou 4 dix, ou 4 valets, ou 4 dames, ou 4 rois
BJ = -(k1 = 1): If BJ = 0 Then Exit Sub
With Worksheets("Black Jack") 'nom de feuille à adapter
If k2 = 1 Then
.[B3] = 21: POrdi = .[H3]: PJoueur = 21: s = 1: chn = "Le joueur"
Else
.[H3] = 21: POrdi = 21: PJoueur = .[B3]: s = -1: chn = "La banque"
End If
End With
If BJ = 1 Then
m = MJ * 1.5: PM = PM + s * m: MB = MB - s * m
LbCroupier.Visible = -1: LbCroupier = chn & " gagne !"
LbBJ.Visible = -1: LbBJ = "BLACK JACK"
End If
End Sub
Private Sub Attente_Click()
On Error Resume Next
Dim Chemin$, Image4 As IPictureDisp 'pour le type IPictureDisp, je ne suis pas sûr ; si ça ne marche pas,
'essaye : Image4 As Object ; ou Image4 As Variant ; ou Image4 (si type non indiqué : idem que Variant).
Dim t#, x&, i&
With Worksheets("Black Jack") 'nom de feuille à adapter
Image4.Picture = LoadPicture(Chemin & .Cells(8, 7) & ".gif"): If .[H3] < .[B3] Then Cartes_Ordi
x = 8
For i = 1 To 4
If IsEmpty(.Cells(x, 7)) Then Exit For
x = x + 1: Joue_Carte: t = Timer + 0.8: Do Until Timer > t: DoEvents: Loop
Application.Controls("Image" & x).Picture = LoadPicture(Chemin & .Cells(x, 7) & ".gif")
Next i
BJck .[B7], .[D8], 1: If BJ = 1 Then Exit Sub
BJck .[B8], .[D7], 1: If BJ = 1 Then Exit Sub
BJck .[F7], .[H8], 2: If BJ = 1 Then Exit Sub
BJck .[F8], .[H7], 2: If BJ = 1 Then Exit Sub
If .[B3] = .[H3] Then
POrdi = .[H3]: PJoueur = .[B3]: LbCroupier.Visible = -1: LbCroupier = "Egalité !": Exit Sub
End If
Select Case .[H3]
Case Is > 21
POrdi = .[H3]: PJoueur = .[B3]: MB = MB - MJ: PM = PM + MJ
LbCroupier.Visible = -1: LbCroupier = "Le joueur gagne !"
Exit Sub
Case Is <= 21, Is > .[B3]
POrdi = .[H3]: PJoueur = .[B3]: MB = MB + MJ: PM = PM - MJ
LbCroupier.Visible = -1: LbCroupier = "La banque gagne !"
Exit Sub
Case Is > 21
If .[B3] > 21 Then
POrdi = .[H3]: PJoueur = .[B3]
LbCroupier.Visible = -1: LbCroupier = "Personne gagne !"
Exit Sub
End If
End Select
End With
End Sub
Sub Cartes_Ordi(): End Sub 'sub ajoutée pour éviter le blocage de la compilation
Sub Joue_Carte(): End Sub 'sub ajoutée pour éviter le blocage de la compilation