diff --git a/BlackjackGUI/Card.vb b/BlackjackGUI/Card.vb index 03f5c45..eb49ea1 100644 --- a/BlackjackGUI/Card.vb +++ b/BlackjackGUI/Card.vb @@ -4,6 +4,8 @@ Private boxId As PictureBox Private cardImage As Image Private cardName As Tuple(Of String, String) + Private cardSuit As String + Private cardNumber as String Private cardLocation As Point Private cardHidden As Boolean @@ -12,6 +14,8 @@ idCounter += 1 boxId = New PictureBox() cardName = name + cardSuit = name.item1 + cardNumber = name.item2 cardHidden = hidden cardImage = Utilities.GetCardImage(name, hidden) End Sub @@ -40,6 +44,13 @@ Return cardName End Function + Public Function GetSuit() As String + Return cardSuit + End Function + + Public Function GetNumber() As String + Return cardNumber + End Function Public Function GetLocation() Return cardLocation End Function diff --git a/BlackjackGUI/Game.vb b/BlackjackGUI/Game.vb index e16cdb9..3040b32 100644 --- a/BlackjackGUI/Game.vb +++ b/BlackjackGUI/Game.vb @@ -33,6 +33,7 @@ Sub DealCard(playerDealt As Object, Optional hide As Boolean = False) Dim card As Tuple(Of String, String) = deck(0) + Dim playingCard = New Card(card, hide) playerDealt.hand.Add(card) deck.RemoveAt(0) GetTotal(playerDealt, hide) @@ -47,7 +48,7 @@ End Sub 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 Card) = playerToCheck.hand If cards.Count = 0 Then playerToCheck.total = 0 Return @@ -55,7 +56,7 @@ Dim total = 0 Dim aceTotal = 0 For Each card In cards - Dim num As String = card.Item2 + Dim num As String = card.GetNumber() If num = "K" Or num = "Q" Or num = "J" Then num = 10 End If diff --git a/BlackjackGUI/GameWindow.vb b/BlackjackGUI/GameWindow.vb index f8aefc4..623ac27 100644 --- a/BlackjackGUI/GameWindow.vb +++ b/BlackjackGUI/GameWindow.vb @@ -27,14 +27,14 @@ StartGame.Enabled = False End Sub - Private Sub OnCardDealt(card As Tuple(Of String, String), cardNumber As String, hide As Boolean) _ + Private Sub OnCardDealt(card As Card, cardNumber As String, hide As Boolean) _ Handles game.CardDealt Dim pictureBox As PictureBox pictureBox = CType(Me.Controls.Find("PlayerCard" + cardNumber, True).First(), PictureBox) If hide Then pictureBox.Image = My.Resources.blue Else - pictureBox.Image = Utilities.GetCardImage(card) + pictureBox.Image = Utilities.GetCardImage(Tuple.create(card.GetSuit(), card.GetNumber())) End If End Sub diff --git a/BlackjackGUI/Player.vb b/BlackjackGUI/Player.vb index 7b270db..42e53f0 100644 --- a/BlackjackGUI/Player.vb +++ b/BlackjackGUI/Player.vb @@ -1,5 +1,5 @@ Public Class Player - Public Property hand As New List(Of Tuple(Of String, String)) + Public Property hand As New List(Of Card) Public Property total As Integer Public Property ingame As Boolean Public Property winType As WinCondition diff --git a/card.vb b/card.vb new file mode 100644 index 0000000..994ab8d --- /dev/null +++ b/card.vb @@ -0,0 +1,50 @@ +Public Class Card + Private Shared idCounter As Integer = 1 + Private id As Integer + Private boxId As PictureBox + Private cardImage As Image + Private cardName As Tuple(Of String, String) + Private cardLocation As Point + Private cardHidden As Boolean + + Public Sub New(name As Tuple(Of String, String), Optional hidden As Boolean = False) + id = idCounter + idCounter += 1 + boxId = New PictureBox() + cardName = name + cardHidden = hidden + cardImage = Utilities.GetCardImage(name, hidden) + End Sub + + Public Sub SetLocation(location As point) + cardLocation = location + End Sub + + Public Sub SetName(name As Tuple(Of String, String)) + cardName = name + End Sub + + Public Sub SetHidden(hidden As Boolean) + cardHidden = hidden + End Sub + + Public Function GetId() As Integer + Return id + End Function + + Public Function GetBoxId() As PictureBox + Return boxId + End Function + + Public Function GetName() As Tuple(Of String, String) + Return cardName + End Function + + Public Function GetLocation() As Point + Return cardLocation + End Function + + Public Function IsHidden() As Boolean + Return cardHidden + End Function +End Class \ No newline at end of file