vb课设数字拼图怎么初始化,高手进
在网上找到了一段,但是有很多地方看不懂PrivateSubCommand2_Click()Dimnum(7)AsIntegerDimaAsIntegerDimbAsInt...
在网上找到了一段,但是有很多地方看不懂
Private Sub Command2_Click()
Dim num(7) As Integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
Randomize 这个完全不认识
Do While b < 8
p: a = Rnd * 8 p:是什么意思啊 ,一头雾水啊
If a = 0 Then
GoTo p 还有这里的goto也不清楚
End If
If b = 0 Then
num(b) = a
b = b + 1
GoTo p
End If
For c = 0 To b - 1
If num(c) = a Then
GoTo p
End If
Next c
num(b) = a
b = b + 1
Loop
Com(0).Caption = ""
Com(0).Enabled = True
Com(0).Visible = False
For a = 0 To 7
Com(a + 1).Enabled = True
Com(a + 1).Visible = True
Com(a + 1).Caption = num(a)
Next a
Timer1.Enabled = True
Label1.Caption = 0
Label3.Caption = 0
Command1.Visible = True
End Sub
当然如果有更简单易懂的程序提供一下的话就更好了 O(∩_∩)O谢谢 展开
Private Sub Command2_Click()
Dim num(7) As Integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
Randomize 这个完全不认识
Do While b < 8
p: a = Rnd * 8 p:是什么意思啊 ,一头雾水啊
If a = 0 Then
GoTo p 还有这里的goto也不清楚
End If
If b = 0 Then
num(b) = a
b = b + 1
GoTo p
End If
For c = 0 To b - 1
If num(c) = a Then
GoTo p
End If
Next c
num(b) = a
b = b + 1
Loop
Com(0).Caption = ""
Com(0).Enabled = True
Com(0).Visible = False
For a = 0 To 7
Com(a + 1).Enabled = True
Com(a + 1).Visible = True
Com(a + 1).Caption = num(a)
Next a
Timer1.Enabled = True
Label1.Caption = 0
Label3.Caption = 0
Command1.Visible = True
End Sub
当然如果有更简单易懂的程序提供一下的话就更好了 O(∩_∩)O谢谢 展开
1个回答
展开全部
先解释一下P:
早期BASIC中每一句代码前都有一个数字来作标识表示程序执行的顺序,后来在VB中不用了,但还是保留了这一习惯,这个P就是用来表示a = Rnd * 8这句代码的位置的标识
GOTO语句,又称无条例转移指令,表示程序执行到这里时立即转移, 而GOTO P 就是转移到标记为P的指令处,在这里指执行 a = Rnd * 8 这一句.
Randomize 初始化随机数生成器,注意到下面一句RND没有?RND:产生一个随机数,随机数的产生一般用系统计时器返回的值作为新的种子值,如果没有对随机数生成器进行初始化,当下一次运行RND 时还是使用第一个种子数,这样产生的随机数就会和上一次一样,等于没有产生.所以要初始化,Randomize就是实现这个功能的.
明白了吧?
解释整修程序
Private Sub Command2_Click()
Dim num(7) As Integer'定义一个数组
Dim a As Integer'不用说吧
Dim b As Integer
Dim c As Integer
Randomize ' 初始化随机数生成器,应该放在DO语句的下面吧?
Do While b < 8'如果b >= 8'就转移到标识为LOOP下面的那一语句
p: a = Rnd * 8 'p:这一句的标识是P
If a =0 Then
GoTo p '如果a =0就转移到标识为P的语句那里去
End If
If b = 0 Then
num(b) = a
b = b + 1
GoTo p '如果b =0就转移到标识为P的语句那里去
End If
For c = 0 To b - 1
If num(c) = a Then
GoTo p '如果c =0就转移到标识为P的语句那里去
End If
Next c
num(b) = a
b = b + 1
Loop'转移到Do While b < 8处
Com(0).Caption = ""'后面的就不写了吧
Com(0).Enabled = True
Com(0).Visible = False
For a = 0 To 7
Com(a + 1).Enabled = True
Com(a + 1).Visible = True
Com(a + 1).Caption = num(a)
Next a
Timer1.Enabled = True
Label1.Caption = 0
Label3.Caption = 0
Command1.Visible = True
End Sub
不知道你要干什么,不明白具体需求
早期BASIC中每一句代码前都有一个数字来作标识表示程序执行的顺序,后来在VB中不用了,但还是保留了这一习惯,这个P就是用来表示a = Rnd * 8这句代码的位置的标识
GOTO语句,又称无条例转移指令,表示程序执行到这里时立即转移, 而GOTO P 就是转移到标记为P的指令处,在这里指执行 a = Rnd * 8 这一句.
Randomize 初始化随机数生成器,注意到下面一句RND没有?RND:产生一个随机数,随机数的产生一般用系统计时器返回的值作为新的种子值,如果没有对随机数生成器进行初始化,当下一次运行RND 时还是使用第一个种子数,这样产生的随机数就会和上一次一样,等于没有产生.所以要初始化,Randomize就是实现这个功能的.
明白了吧?
解释整修程序
Private Sub Command2_Click()
Dim num(7) As Integer'定义一个数组
Dim a As Integer'不用说吧
Dim b As Integer
Dim c As Integer
Randomize ' 初始化随机数生成器,应该放在DO语句的下面吧?
Do While b < 8'如果b >= 8'就转移到标识为LOOP下面的那一语句
p: a = Rnd * 8 'p:这一句的标识是P
If a =0 Then
GoTo p '如果a =0就转移到标识为P的语句那里去
End If
If b = 0 Then
num(b) = a
b = b + 1
GoTo p '如果b =0就转移到标识为P的语句那里去
End If
For c = 0 To b - 1
If num(c) = a Then
GoTo p '如果c =0就转移到标识为P的语句那里去
End If
Next c
num(b) = a
b = b + 1
Loop'转移到Do While b < 8处
Com(0).Caption = ""'后面的就不写了吧
Com(0).Enabled = True
Com(0).Visible = False
For a = 0 To 7
Com(a + 1).Enabled = True
Com(a + 1).Visible = True
Com(a + 1).Caption = num(a)
Next a
Timer1.Enabled = True
Label1.Caption = 0
Label3.Caption = 0
Command1.Visible = True
End Sub
不知道你要干什么,不明白具体需求
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询