想随机产生不重复的随机点数和花色,代码如下
namespace CardTest
{
public enum CardType
{
Spade, Heart, Club, Diamond
}
public class Card
{
private int _count;
private CardType _type;
public int Count
{
get { return _count; }
set { _count = value; }
} public CardType Type
{
get { return _type; }
set { _type = value; }
} public Card(){}
public Card(int count, CardType type)
{
this._count = count;
this._type = type;
}
}
}namespace CardTest
{
public class Game
{
private static List<Card> listcard = new List<Card>();
public Card GenerateCard()
{
Card card = new Card();
card.Count = new Random().Next(1,14);
card.Type = GenerateCardType();
if (listcard.Contains(card))//到这里不知为什么,就是产生重复点数也不进入
{
GenerateCard();
}
else
{
listcard.Add(card);
}
return card;
} public CardType GenerateCardType()
{
int type = new Random().Next(1,5);
CardType temp = new CardType();
switch (type)
{
case 1: temp = CardType.Spade;
break;
case 2: temp = CardType.Heart;
break;
case 3: temp = CardType.Club;
break;
case 4: temp = CardType.Diamond;
break;
}
return temp;
}
}
}期待高手解答
namespace CardTest
{
public enum CardType
{
Spade, Heart, Club, Diamond
}
public class Card
{
private int _count;
private CardType _type;
public int Count
{
get { return _count; }
set { _count = value; }
} public CardType Type
{
get { return _type; }
set { _type = value; }
} public Card(){}
public Card(int count, CardType type)
{
this._count = count;
this._type = type;
}
}
}namespace CardTest
{
public class Game
{
private static List<Card> listcard = new List<Card>();
public Card GenerateCard()
{
Card card = new Card();
card.Count = new Random().Next(1,14);
card.Type = GenerateCardType();
if (listcard.Contains(card))//到这里不知为什么,就是产生重复点数也不进入
{
GenerateCard();
}
else
{
listcard.Add(card);
}
return card;
} public CardType GenerateCardType()
{
int type = new Random().Next(1,5);
CardType temp = new CardType();
switch (type)
{
case 1: temp = CardType.Spade;
break;
case 2: temp = CardType.Heart;
break;
case 3: temp = CardType.Club;
break;
case 4: temp = CardType.Diamond;
break;
}
return temp;
}
}
}期待高手解答
如何用C#源代码来检查一个牌类游戏牌的花色是否一样