我目前正在开发一个基本的数学游戏,但我需要一些代码的帮助。
我需要在代码中选择的随机数: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
答案 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