版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 这两天想了个发牌的程序。
3个人的扑克牌,54张牌含大小王,每个人18张;如果4个人,则52张牌不含大小王,每个人13张牌。
程序的关键是随机牌面,而且不能发已经发了的牌:
我这里采用的方法是:
从队列牌中随机抽取一张牌,然后从队列中删除这张牌,
继续从队列中随机抽取一张牌,继续删除这张牌
……
直至最后一张牌。
For i As Integer = 纸牌总数 To 0 Step -1
抽出的牌的序号 = randSeed.Next(i + 1)
抽出的卡牌队列.add(剩余所有牌(抽出的牌的序号))
剩余所有牌.RemoveAt(抽出的牌的序号)
Next
简易的程序界面:
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看vb.net 教程 目录