[.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