0
vb.netのブラックジャックゲームに問題があります。私が持っているこのコードはプレーヤーのスコアを完全に追加しますが、それはディーラーの得点になると、それはしません。それはディーラーが持っている2枚目のカードしかかかりません。ブラックジャック:ディーラーの手札を追加しない
これはこれで呼び出されます。
addScore("p") 'add player's score
addScore("d") 'add dealer's score
そして、これは "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'は一切値が割り当てられていないので、常に0になります。それのポイントは何ですか? – djv
プレーヤーとディーラーのカードはすべて「GroupBox1」に入っていますか? – djv
はい、それらはすべてGroupBox1にあります。それは、ディーラーの最初のカードを明らかにしています。なぜなら、2枚目のカードが常に公開されているからです...それからディーラーの得点を得るためにaddScore( "d")を呼び出しますが、もし彼が2と8を持っていれば何らかの理由で16で終わる。 – rsprodftw1