Option Explicit

Dim myFirst As Integer

Dim mySecond As Integer

Dim myThird As Integer

Dim myForth As Integer

Dim myFifth As Integer

Dim myTotal As Integer

Dim dealFirst As Integer

Dim dealSecond As Integer

Dim dealThird As Integer

Dim dealForth As Integer

Dim dealFifth As Integer

Dim dealTotal As Integer

Dim hitCount As Integer

Dim yesNo As Integer

Dim acePick As Integer

Dim aceDealer3 As Boolean

Dim aceDealer4 As Boolean

Dim aceDealer5 As Boolean

Dim done As Boolean

 

Private Sub cmdHit_Click()

If (myTotal < 21) And (done = False) Then

Label3.Visible = True

 

 

Select Case hitCount

Case 0:

lblMyThird = myThird

If myThird = 11 Then

ACE 'goes to ACE subroutine

myThird = acePick

End If

lblMyThird = Str(myThird)

myTotal = myTotal + myThird

lblMyTotal = "Your total is now " & myTotal

 

Case 1:

lblMyForth = myForth

If myForth = 11 Then

ACE 'goes to ACE subroutine

myForth = acePick

End If

lblMyForth = Str(myForth)

myTotal = myTotal + myForth

lblMyTotal = "Your total is now " & myTotal

 

Case 2:

lblMyFifth = myFifth

If myFifth = 11 Then

ACE 'goes to ACE subroutine

myFifth = acePick

End If

lblMyFifth = Str(myFifth)

myTotal = myTotal + myFifth

lblMyTotal = "Your total is now " & myTotal

 

If myTotal < 22 Then

MsgBox "You Win with five cards", vbExclamation, "Winner"

reset 'calls subroutine

End If

End Select

 

hitCount = hitCount + 1

 

If myTotal > 21 Then

MsgBox "You're Busted", vbCritical, "You lose"

reset

End If

 

End If 'Ends top if statement

End Sub

 

Private Sub cmdStart_Click()

reset 'calls reset subroutine for game restart

Randomize Timer

myFirst = Int((Rnd * 10) + 2)

mySecond = Int((Rnd * 10) + 2)

myThird = Int((Rnd * 10) + 2)

myForth = Int((Rnd * 10) + 2)

myFifth = Int((Rnd * 10) + 2)

dealFirst = Int((Rnd * 10) + 2)

dealSecond = Int((Rnd * 10) + 2)

dealThird = Int((Rnd * 10) + 2)

dealForth = Int((Rnd * 10) + 2)

dealFifth = Int((Rnd * 10) + 2)

 

lblMyFirst = Str(myFirst)

If myFirst = 11 Then

ACE 'goes to ACE subroutine

myFirst = acePick

End If

lblMyFirst = Str(myFirst)

 

lblMySecond = Str(mySecond)

If mySecond = 11 Then

ACE 'goes to ACE subroutine

mySecond = acePick

End If

lblMySecond = Str(mySecond)

 

myTotal = myFirst + mySecond

 

lblDealFirst = Str(dealFirst)

lblDealSecond = Str(dealSecond)

 

If (dealFirst = 11) And (dealSecond = 11) Then

dealSecond = 1  'two Aces won't bust

 

End If

 

dealTotal = dealFirst + dealSecond

lblMyTotal = "Your total is " & (myTotal)

lblDealTotal = "Dealer's total is " & (dealTotal)

 

End Sub

 

Private Sub cmdStay_Click()

If (done = False) Then

If (dealTotal > 10) And (dealTotal < 17) And (dealThird = 11) Then

dealThird = 1       'So not busted by Ace

aceDealer3 = True

lblDealThird = "1"

dealTotal = dealTotal + 1

ElseIf (dealTotal < 17) And Not (aceDealer3 = True) Then

lblDealThird = Str(dealThird) 'dealer takes third

dealTotal = dealTotal + dealThird

End If                          'Third card done

 

If (dealTotal > 10) And (dealTotal < 17) And (dealForth = 11) Then

dealForth = 1   'Ace

aceDealer4 = True

lblDealForth = "1"

dealTotal = dealTotal + 1

ElseIf (dealTotal < 17) And Not (aceDealer4 = True) Then

lblDealForth = Str(dealForth) 'dealer takes forth

dealTotal = dealTotal + dealForth

End If                          'forth card done

 

If (dealTotal > 10) And (dealTotal < 17) And (dealFifth = 11) Then

dealFifth = 1   'Ace

aceDealer5 = True

lblDealFifth = "1"

dealTotal = dealTotal + 1

ElseIf (dealTotal < 17) And Not (aceDealer5 = True) Then

lblDealFifth = Str(dealFifth) 'dealer takes fifth

dealTotal = dealTotal + dealFifth

End If                          'Fifth card done

 

If (dealTotal > 21) Then

lblDealTotal = "Dealer's total is " & dealTotal & "  Busted"

done = True

ElseIf dealTotal < myTotal And Not (done = True) Then

lblMyTotal = "Player's total is " & myTotal & " Player Wins"

lblDealTotal = "Dealer's total is " & dealTotal

done = True

Else

lblDealTotal = "Dealer's total is " & dealTotal & "  Dealer Wins"

done = True 'doesn't allow for hit after game

End If

 

End If 'Ends top If statement

End Sub

 

Private Sub cmdExit_Click()

End

End Sub

 

Sub reset()

myFirst = 0

mySecond = 0

myThird = 0

myForth = 0

myFifth = 0

myTotal = 0

dealFirst = 0

dealSecond = 0

dealThird = 0

dealForth = 0

dealFifth = 0

dealTotal = 0

hitCount = 0

lblMyFirst = ""

lblMySecond = ""

lblMyThird = ""

lblMyForth = ""

lblMyFifth = ""

lblMyTotal = ""

lblDealFirst = ""

lblDealSecond = ""

lblDealThird = ""

lblDealForth = ""

lblDealFifth = ""

lblDealTotal = ""

acePick = 11

aceDealer3 = False

aceDealer4 = False

aceDealer5 = False

done = False

End Sub

 

Sub ACE()

yesNo = MsgBox("Do you want to keep as an Ace worth 11 points", vbYesNo, "ACE")

Select Case yesNo

Case 6:

acePick = 11

Case 7:

acePick = 1

End Select

End Sub