using System;
namespace Ch10CardLib
{
public enum Suit
{
Club,
Diamond,
Heart,
Spade
}
public enum Rank
{
Ace=1,
Deuce,
Three,
Four,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King
}
public class Card
{
public readonly Suit suit;
public readonly Rank rank;
}
public override string ToString()
{
return "The" +rank+ " of " +suit+ "s";
}
private Card()
{
}
public Card(Suit newSuit,Rank newRank)
{
suit=newSuit;
rank=newRank;
}
}using System;
namespace Ch10CardLib
{
public class Deck
{
private Card[] cards;
public Deck()
{
cards=new Card[52];
for (int suitVal=0;suitVal<4;suitVal++)
{
for (int rankVal=1;rankVal<14;rankVal++)
{
cards[suitVal*13+rankVal-1]=new Card[(Suit)suitVal,(Rank)rankVal];
}
}
}
public Card GetCard(int cardNum)
{
if (cardNum>=0&& cardNum<=51)
return cards[cardNum];
else
throw (new System.ArgumentOutOfRangeException("cardNum",cardNum,"Value must be between 0 and 51."));
}
public void Shuffle()
{
Card[] newDeck=new Card[52];
bool[] assigned=new bool[52];
for (int i=0;i<52;i++)
{
int destCard=0;
bool foundCard=false;
Random sourceGen=new Random();
while (foundCard==false)
{
destCard=sourceGen.Next(52);
if (assigned[destCard]==false)
foundCard=true;
}
assigned[destCard]=true;
newDeck[destCard]=cards[i];
}
cards=newDeck;
}
}
}using System;
namespace Ch10CardClient
{
class Class1
{
static void Main(string[] args)
{
Deck myDeck=new Deck();
myDeck.Shuffle();
for (int i=0;i<52;i++)
{
Card tempCard=myDeck.GetCard(i);
Console.WriteLine(tempCard.ToString());
if (i !=51)
Console.Write(",");
else
Console.WriteLine();
}
Console.ReadLine();
}
}
}
[Shadowed: dodati [code] tagovi.]
[Ovu poruku je menjao Shadowed dana 10.12.2006. u 13:35 GMT+1]