我正在尝试制作一个小型游戏,其中计算机提供随机的颜色代码(红绿黄和蓝),然后你必须尝试猜测它们......我无法使颜色随机化.
颜色是4个按钮的背面颜色.代码长度为四种颜色.然后播放器点击其下方的一些按钮并尝试猜测代码.每次单击都会更改一次颜色.如果玩家猜到正确位置的正确颜色,则显示颜色.
到目前为止我有这个:
(问题是:重载分辨率失败,因为没有Public'='可以用这些参数调用:'Public Shared Operator =(left As System.Drawing.Color,right As System.Drawing.Color)As Boolean':Argument matching parameter'右'无法从'整数'转换为'颜色'.(见下面REM颜色1到REM结束)问题是由计算机生成的,用Visual Basic编写的程序,windows窗体应用程序)
Dim turn = 0 Dim generator As New Random Dim color1 = generator.Next(1, 4) Dim color2 = generator.Next(1, 4) Dim color3 = generator.Next(1, 4) Dim color4 = generator.Next(1, 4) Private Sub NewToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewToolStripMenuItem.Click REM color 1 If color1 = 1 Then color1 = Color.Red End If If color1 = 2 Then color1 = Color.Blue End If If color1 = 3 Then color1 = Color.Yellow End If If color1 = 4 Then color1 = Color.Green End If REM color 2 If color2 = 1 Then color2 = Color.Red End If If color2 = 2 Then color2 = Color.Blue End If If color2 = 3 Then color2 = Color.Yellow End If If color2 = 4 Then color2 = Color.Green End If REM color 3 If color3 = 1 Then color3 = Color.Red End If If color3 = 2 Then color3 = Color.Blue End If If color3 = 3 Then color3 = Color.Yellow End If If color3 = 4 Then color3 = Color.Green End If REM color 4 If color4 = 1 Then color4 = Color.Red End If If color4 = 2 Then color4 = Color.Blue End If If color4 = 3 Then color4 = Color.Yellow End If If color4 = 4 Then color4 = Color.Green End If REM End Button1.BackColor = color1 Button2.BackColor = color2 Button3.BackColor = color3 Button4.BackColor = color4
YenTheFirst.. 5
color1,color2,color3,color4是整数.
你写的时候:Dim color1 = generator.Next(1,4)
generator.Next生成一个整数,因此color1定义为整数.当你写color1 = Color.Red
它很困惑,因为你试图将Color设置为一个整数变量.
一般来说编写代码的方法更简洁,但你可能会这样做:
option explicit Dim color_index as Integer Dim color1 as System.Drawing.Color color_index=generator.Next(1,4) [choosing logic] color1 = Color.red [blah blah blah] Button.backcolor = color1
附加说明:正如第一个答案所说的那样,真的有更好的方法来编写这一切.下面的伪代码就是我如何处理这个问题:(抱歉,我不记得我头脑中的确切VB语法)
Button_Array = [Button1,Button2,Button3,Button4] Color_array= [Color.red,Color.blue,Color.green,Color.yellow] for i in 1 to 4 color_index=generator.Next(1,4) Button_Array[i].backcolor = Color_array[color_index] endfor
这更具可读性,更易于维护.(如果要在原始列表或我的伪代码列表中添加第5个按钮或第5个颜色,请考虑添加多少行)
color1,color2,color3,color4是整数.
你写的时候:Dim color1 = generator.Next(1,4)
generator.Next生成一个整数,因此color1定义为整数.当你写color1 = Color.Red
它很困惑,因为你试图将Color设置为一个整数变量.
一般来说编写代码的方法更简洁,但你可能会这样做:
option explicit Dim color_index as Integer Dim color1 as System.Drawing.Color color_index=generator.Next(1,4) [choosing logic] color1 = Color.red [blah blah blah] Button.backcolor = color1
附加说明:正如第一个答案所说的那样,真的有更好的方法来编写这一切.下面的伪代码就是我如何处理这个问题:(抱歉,我不记得我头脑中的确切VB语法)
Button_Array = [Button1,Button2,Button3,Button4] Color_array= [Color.red,Color.blue,Color.green,Color.yellow] for i in 1 to 4 color_index=generator.Next(1,4) Button_Array[i].backcolor = Color_array[color_index] endfor
这更具可读性,更易于维护.(如果要在原始列表或我的伪代码列表中添加第5个按钮或第5个颜色,请考虑添加多少行)