2017-03-06 68 views
0

即时通讯目前正在开发Visual Basic中的数学游戏,但我需要一些帮助一组特定的代码。的Visual Basic号码选择代码

我需要在码中选择的随机数:Dim Result0 = Rnd1.Next(10, 20),总是在0或2,从而结束数字像13和15不会被选择。我需要这样做,因为IM制作赛区的比赛,所以如果像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 

回答

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 
+0

'你可以生成你的答案和除数和它们相乘给你第一个号码< - 我的第一个想法。 Upvoted。 – Neolisk

+0

我真的不理解的代码非常好,我试图把它,但它不工作u能喜欢帮我多一点配售和代码 –

+0

的缩进如果你看看我的回答的第二部分,替换我已更改的三条线可能有所帮助。但是,如果你实际上无法阅读代码,那么在继续作业之前,你可能需要专注于理解它的功能。 –