作者yunniekevin (YK)
看板Visual_Basic
标题[.NET] 新手发问 乱数且连续的抽样(不同按钮)
时间Thu Mar 28 12:01:07 2019
请输入专案类型(网站专案或者应用程式专案):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
麻烦大家了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.121.188.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1553745670.A.FBF.html
1F:→ niklee29: 是我的话我会用数字阵列或list搭配乱数处理把它打乱,然 03/28 15:49
2F:→ niklee29: 後就跟抽牌一样,抽一张就阵列容器-1,以此类推,就跟现 03/28 15:49
3F:→ niklee29: 实抽牌是一样的 03/28 15:49
4F:→ MOONRAKER: 一楼正解 找一下全域变数怎麽用 宣告全域阵列来处理 03/28 16:40