日期:2014-05-19  浏览次数:20735 次

C#入门经典3第10章的练习做不来.求救!
为Ch10CardLib库编写一个控制台客户程序,从搅乱的Deck对象中一次取5张牌,如果这5张牌都是相同的花色,客户程序就应在屏幕上显示这5张牌,以及文本 "Flush! ",否则显示50张牌以及文本 "No   flush ".
Deck   myDeck   =   new   Deck();
                        myDeck.Shuffle();
                        for   (int   i   =   0;   i   <   52;   i++)
                        {
                                Card   tempCard   =   myDeck.GetCard(i);
                                Console.Write(tempCard.ToString());
                                if   (i   !=   51)
                                        Console.Write( ",   ");
                                else
                                        Console.WriteLine();
这段是本来的控制台程序.是把牌洗好以后输出在控制台上.
Deck类是一副扑克牌里面包含了构造函数创建52张牌.GetCard()为指定下标返回Card对象和洗牌函数Shuffle()
Card类里包含suit字段(花式),rank字段(ACE到老K)

------解决方案--------------------
比如第一次随机到11 先去和0 比.. 那一定不会存在的....
num[0] 就被赋值11变成{11,0,0,0,0}
然后下次随机到11 因为num[0]已经是11了, 重新随机新的数字..比如随机到5
那么num数组中没有5这个数字... 则num[1] = 5
第三次随机器到 7 num数组中没有7这个数字.. num[2]=7 以此类推