按钮事件中的选择大小写中的意外行为



所以我正在尝试制作一个程序,该程序将决定两个玩家中的哪一个以每人 rollong 2 个骰子获胜,并将这些骰子的值相加并进行比较。 我目前遇到的问题是我的案例选择语句给我错误"错误 1 运算符'='未为类型'系统.Windows.Forms.PictureBox'和'整数'定义" 我已经盯着这个三个小时了。 谁能帮我?(是的,我是VB的新手)

    Private Sub btnRollDice_Click(sender As Object, e As EventArgs) Handles btnRollDice.Click
    Dim intRandGen As New Random
    Dim intPlayer1Num1 As Integer
    Dim intPlayer1Num2 As Integer
    Dim intPlayer2Num1 As Integer
    Dim intplayer2Num2 As Integer
    Static intPlayer1Total As Integer
    Static intPlayer2Total As Integer
    Static intTieTotal As Integer
    'assign random integer from 1 through 6
    intPlayer1Num1 = intRandGen.Next(1, 7)
    intPlayer1Num2 = intRandGen.Next(1, 7)
    intPlayer2Num1 = intRandGen.Next(1, 7)
    intplayer2Num2 = intRandGen.Next(1, 7)
    'display appropriate image in picDie1 for player one
    Select Case player2PicDie1
        Case 1
            player2PicDie1.Image = picOneDot.Image
        Case 2
            player2PicDie1.Image = picTwoDots.Image
        Case 3
            player2PicDie1.Image = picThreeDots.Image
        Case 4
            player2PicDie1.Image = picFourDots.Image
        Case 5
            player2PicDie1.Image = picFiveDots.Image
        Case 6
            player2PicDie1.Image = picSixDots.Image
    End Select
    'display appropriate image in picDie2 for player one
    Select Case Player1PicDie2
        Case 1
            Player1PicDie2.Image = picOneDot.Image
        Case 2
            Player1PicDie2.Image = picTwoDots.Image
        Case 3
            Player1PicDie2.Image = picThreeDots.Image
        Case 4
            Player1PicDie2.Image = picFourDots.Image
        Case 5
            Player1PicDie2.Image = picFiveDots.Image
        Case 6
            Player1PicDie2.Image = picSixDots.Image
    End Select
    'display appropriate image in picDie1 for player two
    Select Case player2PicDie1
        Case 1
            player2PicDie1.Image = picOneDot.Image
        Case 2
            player2PicDie1.Image = picTwoDots.Image
        Case 3
            player2PicDie1.Image = picThreeDots.Image
        Case 4
            player2PicDie1.Image = picFourDots.Image
        Case 5
            player2PicDie1.Image = picFiveDots.Image
        Case 6
            player2PicDie1.Image = picSixDots.Image
    End Select
    'display appropriate image in picDie2 for player two
    Select Case Player2PicDie2
        Case 1
            Player2PicDie2.Image = picOneDot.Image
        Case 2
            Player2PicDie2.Image = picTwoDots.Image
        Case 3
            Player2PicDie2.Image = picThreeDots.Image
        Case 4
            Player2PicDie2.Image = picFourDots.Image
        Case 5
            Player2PicDie2.Image = picFiveDots.Image
        Case 6
            Player2PicDie2.Image = picSixDots.Image
    End Select
    'Calculate and display total number of dots for player one
    intPlayer1Total = intPlayer1Num1 + intPlayer1Num2
    lblPlayer1Total.Text = intPlayer1Total.ToString()
    'Calculate and display total number of dots for player two
    intPlayer2Total = intPlayer2Num1 + intplayer2Num2
    lblPlayer2Total.Text = intPlayer2Total.ToString()

    If lblPlayer1Total.Text = lblPlayer2Total.Text Then
        MessageBox.Show("You have tied")
    End If
End Sub

如果我理解您的代码,您正在尝试在选择图片类型而不是整数类型值上分支......箱

根据程序上下文,我认为您应该在整数上进行分支,例如:

Select Case intPlayer1Num1  'in place of intPlayer1Num1, you can use appropriate integer variable/value
Case 1 
      player2PicDie1.Image = picOneDot.Image 
Case 2 
      player2PicDie1.Image = picTwoDots.Image
...

您正在创建 4 个随机数并将其分配给整数变量:

intPlayer1Num1 = intRandGen.Next(1, 7)
intPlayer1Num2 = intRandGen.Next(1, 7)
intPlayer2Num1 = intRandGen.Next(1, 7)
intplayer2Num2 = intRandGen.Next(1, 7)

因此,您应该在 Select Case 语句中使用这些整数变量,而不是 PictureBox 变量。而且,在所选情况下,您的图片图像也不正确:

'display appropriate image in picDie1 for player one
Select Case intPlayer1Num1 
    Case 1
        Player1PicDie1.Image = picOneDot.Image
    Case 2
        Player1PicDie1.Image = picTwoDots.Image
    Case 3
        Player1PicDie1.Image = picThreeDots.Image
    Case 4
        Player1PicDie1.Image = picFourDots.Image
    Case 5
        Player1PicDie1.Image = picFiveDots.Image
    Case 6
        Player1PicDie1.Image = picSixDots.Image
End Select
'display appropriate image in picDie2 for player one
Select Case intPlayer1Num2 
    Case 1
        Player1PicDie2.Image = picOneDot.Image
    Case 2
        Player1PicDie2.Image = picTwoDots.Image
    Case 3
        Player1PicDie2.Image = picThreeDots.Image
    Case 4
        Player1PicDie2.Image = picFourDots.Image
    Case 5
        Player1PicDie2.Image = picFiveDots.Image
    Case 6
        Player1PicDie2.Image = picSixDots.Image
End Select
'display appropriate image in picDie1 for player two
Select Case intPlayer2Num1 
    Case 1
        player2PicDie1.Image = picOneDot.Image
    Case 2
        player2PicDie1.Image = picTwoDots.Image
    Case 3
        player2PicDie1.Image = picThreeDots.Image
    Case 4
        player2PicDie1.Image = picFourDots.Image
    Case 5
        player2PicDie1.Image = picFiveDots.Image
    Case 6
        player2PicDie1.Image = picSixDots.Image
End Select
'display appropriate image in picDie2 for player two
Select Case intplayer2Num2 
    Case 1
        Player2PicDie2.Image = picOneDot.Image
    Case 2
        Player2PicDie2.Image = picTwoDots.Image
    Case 3
        Player2PicDie2.Image = picThreeDots.Image
    Case 4
        Player2PicDie2.Image = picFourDots.Image
    Case 5
        Player2PicDie2.Image = picFiveDots.Image
    Case 6
        Player2PicDie2.Image = picSixDots.Image
End Select

最新更新