.net 将假设转换为选择案例
问题是,我基本上用If语句在VB.NET中编写了一个石头剪纸游戏,我想知道我会如何尝试将其转换为一个精选案例 教授在教学方面非常糟糕,直到今天才让我们知道必须是精选案例(明天到期) 公开课表格1.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
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语句。抬头看(不要重复)。