0
Ich habe ein Problem mit meinem Blackjack-Spiel in vb.net. Dieser Code, den ich habe, wird die Punktzahl des Spielers perfekt ergänzen, aber wenn es um die Punktzahl des Dealers geht, wird es nicht funktionieren. Es dauert nur die zweite Karte, die der Dealer hat.Blackjack: Keine Händlerhand hinzufügen
ist es mit diesem genannt:
addScore("p") 'add player's score
addScore("d") 'add dealer's score
Und das ist "addScore()":
Public Function card(player As String, index As Integer) As Label
Try
If player = "p" Then
Return GroupBox1.Controls.OfType(Of Label).Where(Function(l) l.Name = "YouCard" & index.ToString()).Single()
ElseIf player = "d" Then
Return GroupBox1.Controls.OfType(Of Label).Where(Function(l) l.Name = "DealerCard" & index.ToString()).Single()
End If
Catch
Return Nothing
End Try
End Function
Public Sub addScore(ByVal player As String)
Dim currScore As Integer
Dim result As Integer = 0
'Add Score
For value As Integer = 1 To 7
If card(player, value).Text = "A" AndAlso (currScore + 11) <= 21 Then
result = currScore + 11
ElseIf card(player, value).Text = "A" AndAlso (currScore + 1) <= 22 Then
result = currScore + 1
ElseIf IsNumeric(card(player, value).Text) Then
result = currScore + CInt(card(player, value).Text)
ElseIf card(player, value).Text = "" Then
result = result
Else
result = currScore + 10
End If
If player = "p" Then
YouScore.Text = result
Else
DealerScore.Text = result
End If
Next
End Sub
'currScore' ist immer Null, da es nie einen Wert zugewiesen hat. Was ist der Sinn? – djv
Sind alle Karten des Spielers und des Dealers in 'GroupBox1'? – djv
Ja, sie sind alle in GroupBox1. Was es tut, ist die erste Karte des Dealers zu enthüllen, da die zweite Karte immer offengelegt wird ... Dann ruft es den addScore ("d") auf, um die Punkte des Dealers zu erhalten, aber es kommt immer mit der zweiten Karte des Dealers zusammen Wenn er eine 2 und eine 8 hat, kommt er aus irgendeinem Grund auf 16. – rsprodftw1