VB洗牌并排序
用VB写一个扑克程序,每副牌去掉大小王,共计52只,6副牌一共312只,洗出来的牌按实际牌叠一样上至下排列在一起。我是每只牌都在52只中用随机函数取出,然后放置牌叠中,但...
用VB 写一个扑克程序,每副牌去掉大小王,共计52只,6副牌一共312只,洗出来的牌按实际牌叠一样上至下排列在一起。
我是每只牌都在52只中用随机函数取出,然后放置牌叠中,但是我发现有些牌会超出6只,比如会有8只黑桃A之类,6副牌最多6只的嘛。这里要怎样控制? 展开
我是每只牌都在52只中用随机函数取出,然后放置牌叠中,但是我发现有些牌会超出6只,比如会有8只黑桃A之类,6副牌最多6只的嘛。这里要怎样控制? 展开
展开全部
为简单起见,可将312张牌固定下来,例如用0~5表示6张黑桃A,用6~11表示6张红桃A,用12~17表示6张梅花A,用18~23表示方块A,依此类推,用300~305表示梅花2,306~311表示方块2.
每次随机产生一个[0,311]之间的整数,并记下已经产生的数,下次再产生随机数时要排除
在VB窗体Form1中增加一个列表框对象List1:
Option Explicit
Dim A(311) As Integer
Dim B(12) As String
Dim C(3) As String
Private Sub Command1_Click()
Dim i, t
Randomize
List1.Clear
For i = 0 To 311
A(i) = i
Next
For i = 0 To 311
t = Int(Rnd * (312 - i))
List1.AddItem A(t) & "[" & C((A(t) Mod 24) \ 6) & B(A(t) \ 24) & "]"
A(t) = 311 - i
Next
End Sub
Private Sub Form_Load()
Dim i
B(0) = "A": B(1) = "K": B(2) = "Q": B(3) = "J"
For i = 4 To 12
B(i) = Trim(Str(14 - i))
Next
C(0) = "黑桃": C(1) = "红桃": C(2) = "梅花": C(3) = "方块"
End Sub
每次随机产生一个[0,311]之间的整数,并记下已经产生的数,下次再产生随机数时要排除
在VB窗体Form1中增加一个列表框对象List1:
Option Explicit
Dim A(311) As Integer
Dim B(12) As String
Dim C(3) As String
Private Sub Command1_Click()
Dim i, t
Randomize
List1.Clear
For i = 0 To 311
A(i) = i
Next
For i = 0 To 311
t = Int(Rnd * (312 - i))
List1.AddItem A(t) & "[" & C((A(t) Mod 24) \ 6) & B(A(t) \ 24) & "]"
A(t) = 311 - i
Next
End Sub
Private Sub Form_Load()
Dim i
B(0) = "A": B(1) = "K": B(2) = "Q": B(3) = "J"
For i = 4 To 12
B(i) = Trim(Str(14 - i))
Next
C(0) = "黑桃": C(1) = "红桃": C(2) = "梅花": C(3) = "方块"
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询