.net 将假设转换为选择案例

.net 将假设转换为选择案例,.net,vb.net,.net,Vb.net,问题是,我基本上用If语句在VB.NET中编写了一个石头剪纸游戏,我想知道我会如何尝试将其转换为一个精选案例 教授在教学方面非常糟糕,直到今天才让我们知道必须是精选案例(明天到期) 公开课表格1 Dim randomGenerator As New Random Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

问题是,我基本上用If语句在VB.NET中编写了一个石头剪纸游戏,我想知道我会如何尝试将其转换为一个精选案例

教授在教学方面非常糟糕,直到今天才让我们知道必须是精选案例(明天到期)

公开课表格1

    Dim randomGenerator As New Random


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub


    Private Sub rdoROCK_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdoROCK.CheckedChanged
        If rdoROCK.Checked = True Then
            picROCK.Visible = True
        Else
            picROCK.Visible = False
        End If
    End Sub

    Private Sub rdoPAPER_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdoPAPER.CheckedChanged
        If rdoPAPER.Checked = True Then
            picPAPER.Visible = True
        Else
            picPAPER.Visible = False
        End If
    End Sub

    Private Sub rdoSCISSORS_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdoSCISSORS.CheckedChanged
        If rdoSCISSORS.Checked = True Then
            picSCISSORS.Visible = True
        Else
            picSCISSORS.Visible = False
        End If
    End Sub


    Private Sub btnSTART_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSTART.Click
        Dim computerChoice As Integer

        randomGenerator.Next(1, 4)
        computerChoice = randomGenerator.Next(1, 4)

        'If computerChoice = 1 Then
        'picROCK2.Visible = True
        'ElseIf computerChoice = 2 Then
        'picPAPER2.Visible = True
        'ElseIf computerChoice = 3 Then
        'picSCISSORS2.Visible = True
        'End If

        If computerChoice = 1 Then
            picROCK2.Visible = True
            If rdoROCK.Checked = True Then
                lbltie.Visible = True
            ElseIf rdoPAPER.Checked = True Then
                lblwin.Visible = True
            ElseIf rdoSCISSORS.Checked = True Then
                lbllose.Visible = True
            End If
        End If

        If computerChoice = 2 Then
            picPAPER2.Visible = True
            If rdoROCK.Checked = True Then
                lbllose.Visible = True
            ElseIf rdoPAPER.Checked = True Then
                lbltie.Visible = True
            ElseIf rdoSCISSORS.Checked = True Then
                lblwin.Visible = True
            End If
        End If

        If computerChoice = 3 Then
            picSCISSORS2.Visible = True
            If rdoROCK.Checked = True Then
                lblwin.Visible = True
            ElseIf rdoPAPER.Checked = True Then
                lbllose.Visible = True
            ElseIf rdoSCISSORS.Checked = True Then
                lbltie.Visible = True
            End If
        End If




    End Sub

    Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblwin.Click

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        picROCK.Visible = False
        picROCK2.Visible = False
        picPAPER2.Visible = False
        picPAPER.Visible = False
        picSCISSORS.Visible = False
        picSCISSORS2.Visible = False
        lblwin.Visible = False
        lbltie.Visible = False
        lbllose.Visible = False
        rdoROCK.Checked = False
        rdoPAPER.Checked = False
        rdoSCISSORS.Checked = False

    End Sub
End Class

您可以使用
选择案例
重构代码:

Select Case rdoROCK.Checked
        Case True
            picROCK.Visible = True
        Case False
            picROCK.Visible = False
 End Select
或者为了简洁起见:

picROCK.Visible = rdoROCK.Checked
在您的main上,我还将创建一个枚举以提高可读性:

Enum RPS
    Paper = 1
    Rock = 2
    Scissors = 3
End Enum

'now deciding what to show for win, lose or draw:
    Select Case computerChoice
        Case RPS.Paper
            UpdateFormOnPaper()
        Case RPS.Rock
            UpdateFormOnRock()
        Case RPS.Scissors
            UpdateFormOnScissors()
    End Select

 'a method to update the for Win, Lose or Draw for each choice.
 Sub UpdateFormOnRock()        
    picROCK2.Visible = True

    Select Case True
        Case rdoROCK.Checked
            lbltie.Visible = True
        Case rdoPAPER.Checked
            lblwin.Visible = True
        Case rdoSCISSORS.Checked
            lbllose.Visible = True
    End Select
End Sub

您可以使用
选择案例
重构代码:

Select Case rdoROCK.Checked
        Case True
            picROCK.Visible = True
        Case False
            picROCK.Visible = False
 End Select
或者为了简洁起见:

picROCK.Visible = rdoROCK.Checked
在您的main上,我还将创建一个枚举以提高可读性:

Enum RPS
    Paper = 1
    Rock = 2
    Scissors = 3
End Enum

'now deciding what to show for win, lose or draw:
    Select Case computerChoice
        Case RPS.Paper
            UpdateFormOnPaper()
        Case RPS.Rock
            UpdateFormOnRock()
        Case RPS.Scissors
            UpdateFormOnScissors()
    End Select

 'a method to update the for Win, Lose or Draw for each choice.
 Sub UpdateFormOnRock()        
    picROCK2.Visible = True

    Select Case True
        Case rdoROCK.Checked
            lbltie.Visible = True
        Case rdoPAPER.Checked
            lblwin.Visible = True
        Case rdoSCISSORS.Checked
            lbllose.Visible = True
    End Select
End Sub

我相信您正在寻找1、2或3作为您的
选择案例
-它看起来像:

Select Case computerChoice
    Case 1
        ' Do what's currently in your [if computerChoice = 1] section
    Case 2
        ' Do what's currently in your [if computerChoice = 2] section
    Case 3
        ' Do what's currently in your [if computerChoice = 3] section
End Select

我相信您正在寻找1、2或3作为您的
选择案例
-它看起来像:

Select Case computerChoice
    Case 1
        ' Do what's currently in your [if computerChoice = 1] section
    Case 2
        ' Do what's currently in your [if computerChoice = 2] section
    Case 3
        ' Do what's currently in your [if computerChoice = 3] section
End Select


+1为简短选项-1甚至建议选择大小写来检查布尔值。@cHao:你会投我反对票吗?他明确提出了“如何在选择案例时做到这一点?”:)@p、 坎贝尔:他妈的对,我会投你反对票的。我知道的下一件事是,当其他人看到这一点并认为这是一个好主意时,我会在真实的实时代码中查看它@赵:难以置信;你对我的回答投了反对票,因为我回答了那个家伙的问题,并且提供了下面的最佳解决方案?澄清一下:我并没有“建议选择case来检查布尔值”。我只回答了他直接的问题,以及一些有用的建议。@p.campbell:不……我没有投反对票。+1抵消了-1。净分:+0.:)+1为简短选项-1甚至建议选择大小写来检查布尔值。@cHao:你会投我反对票吗?他明确提出了“如何在选择案例时做到这一点?”:)@p、 坎贝尔:他妈的对,我会投你反对票的。我知道的下一件事是,当其他人看到这一点并认为这是一个好主意时,我会在真实的实时代码中查看它@赵:难以置信;你对我的回答投了反对票,因为我回答了那个家伙的问题,并且提供了下面的最佳解决方案?澄清一下:我并没有“建议选择case来检查布尔值”。我只回答了他直接的问题,以及一些有用的建议。@p.campbell:不……我没有投反对票。+1抵消了-1。净分:+0.:)所以Case#将与随机生成的数字一致,以决定计算机选择什么?不看程序的逻辑,
Select Case
语句与
If
语句是一样的,只是有一些不同的规则。如果您的
If computerChoice=
语句工作正常,那么
Select Case
将执行完全相同的操作。那么在前面,我将把它转换成这种性质的东西?除了obv,将有End Select而不是End case,我的错误^^^不,它更像:-您不能在多个复选框上选择case-您必须以老式的方式进行选择。
Select Case
允许您获取单个值(例如
computerChoice
),并对照多个值进行检查。当你检查多个场景(比如是否选中了三个不同的复选框)时,它不是为了帮助你。因此,案例#将与随机生成的数字一致,以决定计算机选择什么?无需查看程序的逻辑,
Select Case
语句与
If
语句是一样的,只是有一些不同的规则。如果您的
If computerChoice=
语句工作正常,那么
Select Case
将执行完全相同的操作。那么在前面,我将把它转换成这种性质的东西?除了obv,将有End Select而不是End case,我的错误^^^不,它更像:-您不能在多个复选框上选择case-您必须以老式的方式进行选择。
Select Case
允许您获取单个值(例如
computerChoice
),并对照多个值进行检查。当您检查多个场景(例如是否选中了三个不同的复选框)时,它不是为帮助您而设计的真正的程序员™ 将使用控件数组,因此不使用If或Select语句。抬起头看(不要重复你自己的话)。不要让别人用猎枪();)真正的程序员™ 将使用控件数组,因此不使用If或Select语句。抬头看(不要重复)。