sskev
Legacy Member
Ik ben BlackJack aan het maken in VB.NET, maar er duiken probleempjes op. Ik heb een classe Card met daarin een Array dat gevuld word met 52 kaarten met bijhorende afbeelding, score enz. Ook zit er een shuffle in om de array met de kaarten door elkaar te halen door in een andere array te steken.
Wanneer ik dit wil testen en 2 kaarten wil doen verschijnen in een picturebox dan kom ik 2 probleempjes tegen:
1) Er komen 2 dezelfde kaarten naast elkaar (ipv 2 verschillende en willekeurig).
2) Na een paar keer op deal te drukken heb ik een error. Na wat te testen (zonder shuffle) loopt het mis bij het oproepen van dames, en ik weet niet waarom. Naam van images is goed dus dat is het probleem niet.
Is er iemand dat kan helpen? Hieronder de code van class card:
En hieronder de code voor het plaatsen van 2 kaarten in picturebox:
Alvast bedankt voor de hulp!
Wanneer ik dit wil testen en 2 kaarten wil doen verschijnen in een picturebox dan kom ik 2 probleempjes tegen:
1) Er komen 2 dezelfde kaarten naast elkaar (ipv 2 verschillende en willekeurig).
2) Na een paar keer op deal te drukken heb ik een error. Na wat te testen (zonder shuffle) loopt het mis bij het oproepen van dames, en ik weet niet waarom. Naam van images is goed dus dat is het probleem niet.
Is er iemand dat kan helpen? Hieronder de code van class card:
Code:
Public Class Carda
#Region "structures"
'Een eige type/structuur maken "CardProperty"
Public Structure CardProperty
Dim soort As String
Dim score As Integer
Dim rang As Integer
Dim front As String
Dim back As String
End Structure
#End Region
#Region "Declarations"
Public deck(52) As CardProperty
#End Region
#Region "Functions"
'Maakt de kaarten en zet ze in goede volgorde
Public Function Createcards() As CardProperty
'Declaratie van x,y: twee tellers voor de lussen
Dim x As Integer
'harten
For x = 1 To 13 Step +1
'toewijzen van rang, soort en afbeelding van de kaart
deck(x).rang = x
deck(x).soort = "harten"
deck(x).front = "images\harten" & x & ".jpg"
'Score toewijzen aan de kaart
'Nog geen rekening gehouden met aas
If x < 10 Then
deck(x).score = x
ElseIf x > 10 Then
deck(x).score = 10
End If
Next x
'klaveren
For x = 14 To 26 Step +1
'toewijzen van rang, soort en afbeelding van de kaart
deck(x).rang = (x - 13)
deck(x).soort = "klaveren"
deck(x).front = "images\klaveren" & (x - 13) & ".jpg"
'Score toewijzen aan de kaart
'Nog geen rekening gehouden met aas
If (x - 13) < 10 Then
deck(x).score = (x - 13)
ElseIf (x - 13) > 10 Then
deck(x).score = 10
End If
Next x
'ruiten
For x = 27 To 39 Step +1
'toewijzen van rang, soort en afbeelding van de kaart
deck(x).rang = (x - 26)
deck(x).soort = "ruiten"
deck(x).front = "images\ruiten" & (x - 26) & ".jpg"
'Score toewijzen aan de kaart
'Nog geen rekening gehouden met aas
If (x - 26) < 10 Then
deck(x).score = (x - 26)
ElseIf (x - 26) > 10 Then
deck(x).score = (10)
End If
Next x
'schoppen
For x = 40 To 52 Step +1
'toewijzen van rang, soort en afbeelding van de kaart
deck(x).rang = (x - 39)
deck(x).soort = "schoppen"
deck(x).front = "images\schoppen" & (x - 39) & ".jpg"
'Score toewijzen aan de kaart
'Nog geen rekening gehouden met aas
If (x - 39) < 10 Then
deck(x - 39).score = (x - 39)
ElseIf (x - 39) > 10 Then
deck(x - 39).score = 10
End If
Next x
Dim tempDeck(52) As CardProperty
Dim r As Random = New Random()
Dim max As Integer = 52
Dim rand As Integer
For teller = max To 1 Step -1
rand = r.Next(1, teller)
tempDeck = deck
deck(teller) = deck(rand)
deck(rand) = tempDeck(max)
Next
Return deck(52)
End Function
#End Region
End Class
En hieronder de code voor het plaatsen van 2 kaarten in picturebox:
Code:
Public Class frmGame
Private Sub btnDeal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeal.Click
Dim myCard As Card = New Card
myCard.Createcards()
Dim myProperty1 As Card.CardProperty = myCard.deck(1)
Dim myImage1 = Image.FromFile(myProperty1.front)
ptbDealer1.Image = New System.Drawing.Bitmap(myImage1)
Dim myProperty2 As Card.CardProperty = myCard.deck(2)
Dim myImage2 = Image.FromFile(myProperty2.front)
ptbDealer2.Image = New System.Drawing.Bitmap(myImage2)
End Sub
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
Me.Close()
End Sub
End Class
Alvast bedankt voor de hulp!