cjard was trying to get you to create a class similar to this one. The class contains a New() Sub that generates your deck. It also contains a GetRandomX function that returns a random 'card' and removes it from the List so you can't select it again.
Code:
Friend Class CardDeck
Private allCardsList As List(Of String)
Private Shared rand As New Random()
Public Sub New()
allCardsList = New List(Of String)(20)
With allCardsList
.Add("C:\CardGame\CardGame\Resources\1heart.jpg")
.Add("C:\CardGame\CardGame\Resources\2heart.jpg")
.Add("C:\CardGame\CardGame\Resources\3heart.jpg")
.Add("C:\CardGame\CardGame\Resources\4heart.jpg")
.Add("C:\CardGame\CardGame\Resources\5heart.jpg")
.Add("C:\CardGame\CardGame\Resources\6heart.jpg")
.Add("C:\CardGame\CardGame\Resources\7heart.jpg")
.Add("C:\CardGame\CardGame\Resources\8heart.jpg")
.Add("C:\CardGame\CardGame\Resources\9heart.jpg")
.Add("C:\CardGame\CardGame\Resources\10heart.jpg")
.Add("C:\CardGame\CardGame\Resources\1diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\2diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\3diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\4diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\5diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\6diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\7diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\8diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\9diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\10diamond.jpg")
.Add("C:\CardGame\CardGame\Resources\joker.jpg")
End With
End Sub
Public Function GetRandomCard() As String
Dim idx As Integer
Dim card As String = Nothing
If allCardsList.Count <> 0 Then
idx = rand.Next(0, allCardsList.Count)
card = allCardsList(idx)
allCardsList.RemoveAt(idx)
Else
Throw New Exception("No cards left in deck")
End If
Return card
End Function
End Clas Once you've got that set up you can instantiate a new instance of the class and start dealing cards. I would suggest that you store your complete deck as the paths to your images and only load them when you're going to use them.
Code:
Private Sub DealCards()
Dim deck As New CardDeck
Me.PicBoxComp1.Image = Image.FromFile(deck.GetRandomCard())
Me.PicBoxUser1.Image = Image.FromFile(deck.GetRandomCard())
'...
End Sub
Bookmarks