当前位置:  开发笔记 > 后端 > 正文

Visual Basic - 猜颜色程序

如何解决《VisualBasic-猜颜色程序》经验,为你挑选了1个好方法。

我正在尝试制作一个小型游戏,其中计算机提供随机的颜色代码(红绿黄和蓝),然后你必须尝试猜测它们......我无法使颜色随机化.

颜色是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个颜色,请考虑添加多少行)



1> YenTheFirst..:

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个颜色,请考虑添加多少行)

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有