首页 新闻 会员 周边 捐助

求一道C#入门经典中练习题的答案

0
悬赏园豆:10 [已解决问题] 解决于 2009-07-13 11:04

第10章第4题:

4)         为扑克牌类库编写一个控制台程序,从搅乱的Deck对像中一次取出5张牌。如果这5张牌都是相同的花色,客户程序就应在屏幕上显示这5张牌,以及文本“Flush!”,否则就显示50张牌以及文本“No flush”, 并退出。

下面是从网上下载的答案:

using System;
using Ch10CardLib;
namespace Exercise_Answers
{
class Class1
{
static void Main(string[] args)
{
while(true)
{
Deck playDeck = new Deck();
playDeck.Shuffle();
bool isFlush = false;
int flushHandIndex = 0;
for (int hand = 0; hand < 10; hand++)
{
isFlush = true;
Suit flushSuit = playDeck.GetCard(hand * 5).suit;
for (int card = 1; card < 5; card++)
{
if (playDeck.GetCard(hand * 5 + card).suit !=
flushSuit)
{
isFlush = false;
}
}
if (isFlush)
{
flushHandIndex = hand * 5;
break;
}
}
if (isFlush)
{
Console.WriteLine("Flush!");
for (int card = 0; card < 5; card++)
{
Console.WriteLine(playDeck.GetCard(flushHandIndex +
card));
}
}
else
{
Console.WriteLine("No flush.");
}
Console.ReadLine();
}
}
}
}

答案有一个问题,就是没有按题目的要求,如果没有相同花色的5张牌,就要显示全部50张牌,而仅仅是给出了文本“No flush”

我不知道要如何将全部50张牌显示出来,请大家帮忙。

海风1998的主页 海风1998 | 初学一级 | 园豆:20
提问于:2009-07-09 14:40
< >
分享
最佳答案
0

Deck playDeck = new Deck(); //没有 Deck 类的定义?

//--------------------------------------------------

Card c = playDeck.GetCard(0);

for(int i = 1;i < 50, c != null;i++){// i < 50 ?

       Console.WriteLine(c);      

   Card c = playDeck.GetCard(i);

}

陛下 | 老鸟四级 |园豆:3938 | 2009-07-09 14:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册