parent
3ae3a26e2b
commit
ef55b4bc2e
|
@ -1,9 +1,11 @@
|
||||||
Public Class GameWindow
|
Public Class GameWindow
|
||||||
Private WithEvents game As Game
|
Private WithEvents game As Game
|
||||||
|
|
||||||
Private Sub StartGame_Click(sender As Object, e As EventArgs) Handles StartGame.Click
|
Private Sub StartGame_Click(sender As Object, e As EventArgs) Handles StartGame.Click
|
||||||
game = New Game()
|
game = New Game()
|
||||||
game.Start()
|
game.Start()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub HitButton_Click(sender As Object, e As EventArgs) Handles HitButton.Click
|
Private Sub HitButton_Click(sender As Object, e As EventArgs) Handles HitButton.Click
|
||||||
game.Hit()
|
game.Hit()
|
||||||
End Sub
|
End Sub
|
||||||
|
@ -11,8 +13,11 @@
|
||||||
Private Sub StandButton_Click(sender As Object, e As EventArgs) Handles StandButton.Click
|
Private Sub StandButton_Click(sender As Object, e As EventArgs) Handles StandButton.Click
|
||||||
game.Stand()
|
game.Stand()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OnResetUI() Handles game.ResetUI
|
Private Sub OnResetUI() Handles game.ResetUI
|
||||||
Dim pictureBoxes() As PictureBox = {PlayerCard1, PlayerCard2, PlayerCard3, PlayerCard4, PlayerCard5, PlayerCard6, PlayerCard7, PlayerCard8, PlayerCard9, PlayerCard10}
|
Dim pictureBoxes() As PictureBox =
|
||||||
|
{PlayerCard1, PlayerCard2, PlayerCard3, PlayerCard4, PlayerCard5, PlayerCard6, PlayerCard7, PlayerCard8,
|
||||||
|
PlayerCard9, PlayerCard10}
|
||||||
For Each box In pictureBoxes
|
For Each box In pictureBoxes
|
||||||
box.Image = Nothing
|
box.Image = Nothing
|
||||||
Next
|
Next
|
||||||
|
@ -22,7 +27,8 @@
|
||||||
StartGame.Enabled = False
|
StartGame.Enabled = False
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OnCardDealt(card As Tuple(Of String, String), cardNumber As String, hide As Boolean) Handles game.CardDealt
|
Private Sub OnCardDealt(card As Tuple(Of String, String), cardNumber As String, hide As Boolean) _
|
||||||
|
Handles game.CardDealt
|
||||||
Dim pictureBox As PictureBox
|
Dim pictureBox As PictureBox
|
||||||
Debug.Print(cardNumber)
|
Debug.Print(cardNumber)
|
||||||
Try
|
Try
|
||||||
|
@ -47,12 +53,11 @@
|
||||||
Private Sub ShowDealerCard(card) Handles game.ShowDealerCard
|
Private Sub ShowDealerCard(card) Handles game.ShowDealerCard
|
||||||
PlayerCard7.Image = Utilities.GetCardImage(card)
|
PlayerCard7.Image = Utilities.GetCardImage(card)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub EndGame(message) Handles game.EndGame
|
Private Sub EndGame(message) Handles game.EndGame
|
||||||
WinMessage.Text = message
|
WinMessage.Text = message
|
||||||
HitButton.Enabled = False
|
HitButton.Enabled = False
|
||||||
StandButton.Enabled = False
|
StandButton.Enabled = False
|
||||||
StartGame.Enabled = True
|
StartGame.Enabled = True
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
|
@ -10,6 +10,7 @@
|
||||||
Next
|
Next
|
||||||
Return list
|
Return list
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Shared Function GetCardImage(card As Tuple(Of String, String)) As Image
|
Public Shared Function GetCardImage(card As Tuple(Of String, String)) As Image
|
||||||
Dim suit As String = card.Item1
|
Dim suit As String = card.Item1
|
||||||
Dim num As String = card.Item2
|
Dim num As String = card.Item2
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
Private dealer As Dealer
|
Private dealer As Dealer
|
||||||
Private deck As List(Of Tuple(Of String, String))
|
Private deck As List(Of Tuple(Of String, String))
|
||||||
Private WithEvents dealerDelay As Timer
|
Private WithEvents dealerDelay As Timer
|
||||||
|
|
||||||
Public Sub Start()
|
Public Sub Start()
|
||||||
Init()
|
Init()
|
||||||
player.Start()
|
player.Start()
|
||||||
|
@ -20,12 +21,14 @@
|
||||||
CheckPlayer(player)
|
CheckPlayer(player)
|
||||||
CheckPlayer(dealer, True)
|
CheckPlayer(dealer, True)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Init()
|
Sub Init()
|
||||||
player = New Player()
|
player = New Player()
|
||||||
dealer = New Dealer()
|
dealer = New Dealer()
|
||||||
deck = CreateDeck()
|
deck = CreateDeck()
|
||||||
RaiseEvent ResetUI()
|
RaiseEvent ResetUI()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub DealCard(playerDealt As Object, Optional hide As Boolean = False)
|
Sub DealCard(playerDealt As Object, Optional hide As Boolean = False)
|
||||||
Dim card As Tuple(Of String, String) = deck(0)
|
Dim card As Tuple(Of String, String) = deck(0)
|
||||||
playerDealt.hand.Add(card)
|
playerDealt.hand.Add(card)
|
||||||
|
@ -34,11 +37,13 @@
|
||||||
If hide Then
|
If hide Then
|
||||||
playerDealt.hidden = card
|
playerDealt.hidden = card
|
||||||
End If
|
End If
|
||||||
Dim cardNumber As String = If(TypeOf playerDealt Is Dealer, (playerDealt.hand.Count + 5).ToString(), playerDealt.hand.Count)
|
Dim cardNumber As String =
|
||||||
|
If(TypeOf playerDealt Is Dealer, (playerDealt.hand.Count + 5).ToString(), playerDealt.hand.Count)
|
||||||
|
|
||||||
RaiseEvent CardDealt(card, cardNumber, hide)
|
RaiseEvent CardDealt(card, cardNumber, hide)
|
||||||
RaiseEvent SetTotalLabels(player.total, dealer.total)
|
RaiseEvent SetTotalLabels(player.total, dealer.total)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub GetTotal(playerToCheck As Object, Optional hide As Boolean = False)
|
Sub GetTotal(playerToCheck As Object, Optional hide As Boolean = False)
|
||||||
Dim cards As List(Of Tuple(Of String, String)) = playerToCheck.hand
|
Dim cards As List(Of Tuple(Of String, String)) = playerToCheck.hand
|
||||||
If cards.Count = 0 Then
|
If cards.Count = 0 Then
|
||||||
|
@ -68,8 +73,8 @@
|
||||||
Else
|
Else
|
||||||
playerToCheck.total = total
|
playerToCheck.total = total
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub CheckPlayer(playerToCheck As Object, Optional peek As Boolean = False)
|
Sub CheckPlayer(playerToCheck As Object, Optional peek As Boolean = False)
|
||||||
Dim total As Integer = playerToCheck.total
|
Dim total As Integer = playerToCheck.total
|
||||||
If peek Then
|
If peek Then
|
||||||
|
@ -98,8 +103,8 @@
|
||||||
playerToCheck.ingame = False
|
playerToCheck.ingame = False
|
||||||
DealerTurn()
|
DealerTurn()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub DealerTurn()
|
Sub DealerTurn()
|
||||||
GetTotal(dealer)
|
GetTotal(dealer)
|
||||||
RaiseEvent SetTotalLabels(player.total, dealer.total)
|
RaiseEvent SetTotalLabels(player.total, dealer.total)
|
||||||
|
@ -118,7 +123,7 @@
|
||||||
ElseIf dealer.total < dealer.limit And dealer.hand.Count < 5 Then
|
ElseIf dealer.total < dealer.limit And dealer.hand.Count < 5 Then
|
||||||
dealerDelay = New Timer With {
|
dealerDelay = New Timer With {
|
||||||
.Interval = 1000
|
.Interval = 1000
|
||||||
}
|
}
|
||||||
dealerDelay.Start()
|
dealerDelay.Start()
|
||||||
Exit Sub
|
Exit Sub
|
||||||
Else
|
Else
|
||||||
|
@ -127,6 +132,7 @@
|
||||||
End If
|
End If
|
||||||
CheckGame()
|
CheckGame()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub OnTickDealerDelay(sender As Object, e As EventArgs) Handles dealerDelay.Tick
|
Sub OnTickDealerDelay(sender As Object, e As EventArgs) Handles dealerDelay.Tick
|
||||||
dealerDelay.Stop()
|
dealerDelay.Stop()
|
||||||
dealerDelay.Dispose()
|
dealerDelay.Dispose()
|
||||||
|
@ -140,16 +146,19 @@
|
||||||
CheckPlayer(player)
|
CheckPlayer(player)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Stand()
|
Sub Stand()
|
||||||
If player.ingame Then
|
If player.ingame Then
|
||||||
player.ingame = False
|
player.ingame = False
|
||||||
DealerTurn()
|
DealerTurn()
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub CheckGame()
|
Sub CheckGame()
|
||||||
Dim winMessage As String = GetResults()
|
Dim winMessage As String = GetResults()
|
||||||
RaiseEvent EndGame(winMessage)
|
RaiseEvent EndGame(winMessage)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Function GetResults()
|
Function GetResults()
|
||||||
Select Case True
|
Select Case True
|
||||||
Case dealer.winType = WinCondition.Blackjack
|
Case dealer.winType = WinCondition.Blackjack
|
||||||
|
@ -174,6 +183,7 @@
|
||||||
Return "Dealer wins with a total of " & dealer.total.ToString() & "!"
|
Return "Dealer wins with a total of " & dealer.total.ToString() & "!"
|
||||||
End Select
|
End Select
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function CreateDeck() As List(Of Tuple(Of String, String))
|
Function CreateDeck() As List(Of Tuple(Of String, String))
|
||||||
Dim response As New List(Of Tuple(Of String, String))
|
Dim response As New List(Of Tuple(Of String, String))
|
||||||
Dim nums As String() = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}
|
Dim nums As String() = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}
|
||||||
|
@ -185,7 +195,6 @@
|
||||||
Next
|
Next
|
||||||
Return Utilities.Shuffle(response)
|
Return Utilities.Shuffle(response)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
Public Enum WinCondition
|
Public Enum WinCondition
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
total = 0
|
total = 0
|
||||||
ingame = True
|
ingame = True
|
||||||
winType = WinCondition.NormalWin
|
winType = WinCondition.NormalWin
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
Public Class Dealer
|
Public Class Dealer
|
||||||
Inherits Player
|
Inherits Player
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue