Vb.net VB-比较两个标签中的数字
我正在用Visual Basic做一个学校项目(使用Visual studio 2015),我有点被卡住了 我的目标是创建一个彩票,玩家从复选框中选择6个数字,然后生成6个随机数字(1-49),最后,这两组数字应该进行比较,需要的结果是正确猜测的数字 我将两个结果(猜测的数字、生成的数字)保存在两个不同的标签中 复选框本身一般如下所示:Vb.net VB-比较两个标签中的数字,vb.net,visual-studio,visual-studio-2015,Vb.net,Visual Studio,Visual Studio 2015,我正在用Visual Basic做一个学校项目(使用Visual studio 2015),我有点被卡住了 我的目标是创建一个彩票,玩家从复选框中选择6个数字,然后生成6个随机数字(1-49),最后,这两组数字应该进行比较,需要的结果是正确猜测的数字 我将两个结果(猜测的数字、生成的数字)保存在两个不同的标签中 复选框本身一般如下所示: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
lev = 20
tt = 0
For j = 1 To 50
tt = tt + 1
n = n + 1
box(j) = New CheckBox
box(j).Name = "box(" & Str(j) & ")"
If n = 11 Then lev = lev + 110 : n = 1 : tt = 1
box(j).Left = lev
box(j).Parent = Me
box(j).Top = tt * 20
box(j).Tag = j
box(j).Text = j
box(j).Visible = True
Next
box(50).Enabled = False
End Sub
Do
rn = rg.Next(1, 50)
If Not r.Contains(rn) Then
r.Add(rn)
End If
Loop Until r.Count = 6
Label1.Text = r(0).ToString + " " + r(1).ToString + " " + r(2).ToString + " " + r(3).ToString + " " + r(4).ToString + " " + r(5).ToString
第一个标签(猜测的数字)是这样填写的(我不会发布全部代码)
第二个(生成的数字)如下所示:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
lev = 20
tt = 0
For j = 1 To 50
tt = tt + 1
n = n + 1
box(j) = New CheckBox
box(j).Name = "box(" & Str(j) & ")"
If n = 11 Then lev = lev + 110 : n = 1 : tt = 1
box(j).Left = lev
box(j).Parent = Me
box(j).Top = tt * 20
box(j).Tag = j
box(j).Text = j
box(j).Visible = True
Next
box(50).Enabled = False
End Sub
Do
rn = rg.Next(1, 50)
If Not r.Contains(rn) Then
r.Add(rn)
End If
Loop Until r.Count = 6
Label1.Text = r(0).ToString + " " + r(1).ToString + " " + r(2).ToString + " " + r(3).ToString + " " + r(4).ToString + " " + r(5).ToString
知道如何比较这些标签中存储的数字并得到结果(正确猜测的数字的数量)吗
提前感谢您可以通过将标签的文本属性拆分为字符串数组并将其转换为整数数组来比较标签中的数字。首先,虽然您的代码有一个小问题,将猜测的数字添加到标签中
For j = 1 To 50
If box(j).Checked = True Then Label9.Text = Label9.Text + " " + box(j).Text
Next
“”应该移到行的末尾,因为此时标签总是以空格开头,这会干扰下面的功能。所以你应该-
For j = 1 To 50
If box(j).Checked = True Then Label9.Text = Label9.Text + box(j).Text + " "
Next
嗯。下面的函数将两个文本标签拆分为各自的数组,循环猜测并检查生成的数字中是否包含任何数字。然后返回匹配数
Private Function ComparePicks() As Integer
Dim numbersMatched As Integer
Dim picks(5) As Integer
Dim generatedNumbers(5) As Integer
For i As Integer = 0 To 5
picks(i) = CInt(Split(Label9.Text, " "c)(i))
Next
For i As Integer = 0 To 5
generatedNumbers(i) = CInt(Split(Label1.Text, " "c)(i))
Next
For i As Integer = 0 To 5
If generatedNumbers.Contains(picks(i)) Then
numbersMatched += 1
End If
Next
Return numbersMatched
End Function
当你把数字放在标签上时,它们变成了文本,这是完全不同的。将所有组放在一个标签中会产生一个很长的文本字符串,很难进行比较。使用数组或列表之类的变量(如果您知道需要单独比较,请不要将它们粘在一起)谢谢,我会试试。所以,如果我将值存储到数组中,如何比较它们以获得正确猜测的数字?如何将一张真正的彩票与一组中奖数字进行比较?一次一个-循环。选择乐透号码还有其他较短的方法: