[.NET] 新手发问 乱数且连续的抽样(不同按钮)

楼主: yunniekevin (YK)   2019-03-28 12:01:07
请输入专案类型(网站专案或者应用程式专案):visual basic的windows form应用程式
超新手发问(visual basic刚载下来的程度) 参考了youtube的资源
https://www.youtube.com/watch?v=mmcIWWnIbf0&list=PLCfL1sBZ2_SRb2t7tA2KVoh16OC0tx6yQ&index=1
想做一个扑克的发牌程式练习
但规则不太一样
希望可以做三个按钮
按第一个按钮时C52取5不重复
按第二个按纽时抽剩下47张牌里的一张
按第三个按钮时抽剩下46张牌里的一张
第一个按钮可以完美做到不重复的发五张牌
但发现我不会写第二个按钮XD
会变成独立事件 没办法连结第一个按钮产生的结果去做事情
所以想请问第二跟第三个按钮该怎么写
程式码如下
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn1.Click
Dim getp(5) As Integer
Randomize()
getp(0) = Int(Rnd() * 52) + 1
getp(1) = Int(Rnd() * 52) + 1
1:
If getp(0) = getp(1) Then
Randomize()
getp(1) = Int(Rnd() * 52) + 1
GoTo 1
End If
getp(2) = Int(Rnd() * 52) + 1
2:
If getp(0) = getp(2) Or getp(1) = getp(2) Then
Randomize()
getp(2) = Int(Rnd() * 52) + 1
GoTo 2
End If
getp(3) = Int(Rnd() * 52) + 1
3:
If getp(0) = getp(3) Or getp(1) = getp(3) Or getp(2) = getp(3) Then
Randomize()
getp(3) = Int(Rnd() * 52) + 1
GoTo 3
End If
getp(4) = Int(Rnd() * 52) + 1
4:
If getp(0) = getp(4) Or getp(1) = getp(4) Or getp(2) = getp(4) Or
getp(3) = getp(4) Then
Randomize()
getp(4) = Int(Rnd() * 52) + 1
GoTo 4
End If
pic1.Image = New Bitmap(getp(0) & ".png")
pic2.Image = New Bitmap(getp(1) & ".png")
pic3.Image = New Bitmap(getp(2) & ".png")
pic4.Image = New Bitmap(getp(3) & ".png")
pic5.Image = New Bitmap(getp(4) & ".png")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn3.Click
End Sub
Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn2.Click
End Sub
End Class
麻烦大家了
作者: niklee29 (就是爱喝茶)   2019-03-28 15:49:00
是我的话我会用数字阵列或list搭配乱数处理把它打乱,然后就跟抽牌一样,抽一张就阵列容器-1,以此类推,就跟现实抽牌是一样的
作者: MOONRAKER (㊣牛鹤鳗毛人)   2019-03-28 16:40:00
一楼正解 找一下全域变量怎么用 宣告全域阵列来处理

Links booklink

Contact Us: admin [ a t ] ucptt.com