
先解释一下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
Timer1Enabled = True
Label1Caption = 0
Label3Caption = 0
Command1Visible = True
End Sub
不知道你要干什么,不明白具体需求
我以前有做过拼图游戏,我是用控件组做的。8块图名字分别为pic(1~8)。那时那种打乱方法原理大概是这样:8个拼图随机抽取2个,交换它们的位置,即交换top值和left值。这样循环多次。若你在picturebox里添加image也可以。
代码框架就是这样:
for i = 1 to 10 '这里10指进行10次位置交换
a = rnd(7) + 1
b = rnd(7) + 1
do while (a = b) '判断a是否=b,若为是,继续产生随机数,直到a<>b为止。
a = rnd(7) + 1
b = rnd(7) + 1
loop
cucuntop = pic(a)top
cucunleft = pic(a)left
pic(a)top = pic(b)top
pic(a)left = pic(b)left
pic(b)top = cucuntop
pic(b)left = cucunleft
next i
这个我做过
用PHOTOSHOP或其它软件先把你的分成想要的块数
他就成了多张了啊
vb 不是处理软件
不能这样撒
以上就是关于vb课设数字拼图怎么初始化,高手进全部的内容,包括:vb课设数字拼图怎么初始化,高手进、VB 数字的移动,数字拼图游戏九格的! 截图如下,求打乱的方法我做出来的会重复。不知道为什么,求高手、关于拼图游戏(vb程序)的自定义分割块数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)