利用随机数产生器 rand,设计一个程序由电脑发桥牌给 4 位玩家,并
输出每位玩家所分得的花色和点数。梅花以 C,方块以 D,红心以 H,
黑桃以 S 表示。牌点用 A,2,3,4,5,6,7,8,9,10,J,Q,K 表
示。 csc Ex0718.cs <Enter>
Ex0718 <Enter>
C2 C4 C7 DA D4 D10 DQ HA HJ HK S2 S6 S10
C3 C8 CJ CK D6 D8 D9 H7 H10 SA S5 S8 SQ
CQ DK H4 H6 H8 H9 HQ S3 S4 S7 S9 SJ SK
CA C5 C6 C9 C10 D2 D3 D5 D7 DJ H2 H3 H5
输出每位玩家所分得的花色和点数。梅花以 C,方块以 D,红心以 H,
黑桃以 S 表示。牌点用 A,2,3,4,5,6,7,8,9,10,J,Q,K 表
示。 csc Ex0718.cs <Enter>
Ex0718 <Enter>
C2 C4 C7 DA D4 D10 DQ HA HJ HK S2 S6 S10
C3 C8 CJ CK D6 D8 D9 H7 H10 SA S5 S8 SQ
CQ DK H4 H6 H8 H9 HQ S3 S4 S7 S9 SJ SK
CA C5 C6 C9 C10 D2 D3 D5 D7 DJ H2 H3 H5
最好不用Random,而用System.Security.Cryptography.RNGCryptoServiceProvider
给一数组如, Arr,里面顺序放所有牌,
然后令Arr中的顺序改为随机就可以.
ArrayList alCard=new ArrayList();
foreach(int i=0;i<52;i++)
alCard.Add(i);//把牌分出去或洗到另一个链表里面
Random rd=new Random();
int nIndex=52;
while(nIndex>0)
{
int iGet=alCard[rd.Next(--nIndex)];
alCard.Remove(iGet);
//把iGet就是一个随机得到的牌,这里可以把它分出去或存到另一个链表里(洗牌);
}