VB洗牌并排序

用VB写一个扑克程序,每副牌去掉大小王,共计52只,6副牌一共312只,洗出来的牌按实际牌叠一样上至下排列在一起。我是每只牌都在52只中用随机函数取出,然后放置牌叠中,但... 用VB 写一个扑克程序,每副牌去掉大小王,共计52只,6副牌一共312只,洗出来的牌按实际牌叠一样上至下排列在一起。
我是每只牌都在52只中用随机函数取出,然后放置牌叠中,但是我发现有些牌会超出6只,比如会有8只黑桃A之类,6副牌最多6只的嘛。这里要怎样控制?
展开
 我来答
数学王子他
2013-08-23 · TA获得超过1706个赞
知道小有建树答主
回答量:510
采纳率:100%
帮助的人:502万
展开全部
为简单起见,可将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
floatingsnows
2013-08-13 · TA获得超过1798个赞
知道小有建树答主
回答量:1318
采纳率:66%
帮助的人:420万
展开全部
检查已选牌的数量啊,如果已经选了6张,继续执行选牌程序!!直到选出的牌符合要求
追问

这样写我的程序会卡死,有没有什么好的方法?能不能写成Function

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式