Visual Basic编号选择器代码

时间:2017-03-06 00:19:48

标签: vb.net

我目前正在开发一个基本的数学游戏,但我需要一些代码的帮助。

我需要在代码中选择的随机数:Dim Result0 = Rnd1.Next(10, 20),始终以0或2结尾,因此不会选择13和15之类的数字。我需要这样做,因为我正在制作一个分区游戏,所以如果出现像10/6这样的随机问题,我必须输入一个很长的十进制数字,这很烦人。这是完整的代码。

Public Class Division
    Dim Rnd1 As New Random
    Dim Rnd2 As New Random
    Dim Result0 = Rnd1.Next(10, 20)
    Dim Result1 = Rnd1.Next(1, 10)
    Dim Total = Result0 / Result1
    Dim Score As Integer = 0
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.KeyPreview = True
        TextBox1.Text = Result0
        TextBox2.Text = Result1
        Label3.Text = Total
        Label4.Text = Score

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles  Button1.Click
    Dim Rnd1 As New Random
    Dim Rnd2 As New Random
    Dim Result0 = Rnd1.Next(10, 20)
    Dim Result1 = Rnd1.Next(1, 10)
    Dim Total = Result0 / Result1

    If TextBox3.Text = Label3.Text Then
        Score += 1
        TextBox3.Text = ""
    Else
        MessageBox.Show("Incorrect")
        TextBox3.Text = ""
    End If
    TextBox1.Text = Result0
    TextBox2.Text = Result1
    Label3.Text = Total
    Label4.Text = Score

End Sub

Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click

End Sub

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown

    If e.KeyCode = Keys.Enter Then
        e.SuppressKeyPress = True
        Button1.PerformClick()
    End If


End Sub
End Class

1 个答案:

答案 0 :(得分:0)

您可以做的是在分配所有值之前测试总数是否为整数,以及它是否不会重新生成您的数字。

注意当你划分数字时,你可以使用" /"或" \"取决于您是否需要整数值。见https://msdn.microsoft.com/en-us/library/b6ex274z.aspx

Dim Rnd1 As New Random
Dim Rnd2 As New Random
Dim Result0 As Integer 
Dim Result1 As Integer
Dim Total As Integer

Do
    Result0 = Rnd1.Next(10, 20)
    Result1 = Rnd1.Next(1, 10)
    If Result0 / Result1 = Result0 \ Result1 Then
        Total = Result0 / Result1
        Exit Do
    End If
Loop

或者,您可以生成您的答案和除数并将它们相乘以得到第一个数字:)

Dim Result1 = Rnd1.Next(1, 10)
Dim Total = Rnd1.Next(1, 5)
Dim Result0 = Result1 * Total