Reputation:
So i am trying to make a program that will decide which of two players wins by rollong 2 die per person and adding the value of those die together and comparing them. the problem i am having currently is that my case select statements are giving me the error "Error 1 Operator '=' is not defined for types 'System.Windows.Forms.PictureBox' and 'Integer'" i have stared at this for three hours. can anyone help me? ( yes i am new to 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
Upvotes: 0
Views: 43
Reputation: 3502
If I understand your code, you are trying to branch over a Picture Type instead of integer Type value in the select...Case
Based on the program context, I think you should be branching over an integer like:
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
...
Upvotes: 1
Reputation: 1908
You're creating 4 random numbers and assigning those to integer variables:
intPlayer1Num1 = intRandGen.Next(1, 7)
intPlayer1Num2 = intRandGen.Next(1, 7)
intPlayer2Num1 = intRandGen.Next(1, 7)
intplayer2Num2 = intRandGen.Next(1, 7)
So you should be using those integer variables in your Select Case
statement and not your PictureBox variables. And you also had your picture images incorrect in your select case:
'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
Upvotes: 0