110,571
社区成员
发帖
与我相关
我的任务
分享
public class Card
{
public enum CardSuit
{
Spade = 0, //黑桃
Heart = 1, //红心
Diamond = 2, //方块
Club = 3, //草花
Joker = 52, //小王
BigJoker = 53,//大王
}
private int id;
public int Rank { get { return id / 4; } } //大小
public CardSuit Suit //花色
{
get
{
if (id == 53) return CardSuit.BigJoker;
if (id == 52) return CardSuit.Joker;
return (CardSuit)(id & 3);
}
}
public override string ToString()
{
return Suit.ToString() + (Suit < CardSuit.Joker ? " " + Rank : "");
}
public static IEnumerable<Card> GetCards54() //随机发54张牌
{
return GetCards(54);
}
public static IEnumerable<Card> GetCards52() //随机发52张牌
{
return GetCards(52);
}
private static IEnumerable<Card> GetCards(int count)
{
int[] ids = new int[count];
for (int i = 0; i < ids.Length; i++) ids[i] = i;
for (int i = count; i > 0; i--)
{
int index = random.Next(i);
Card card = new Card() { id = ids[index] };
ids[index] = ids[i - 1];
yield return card;
}
}
[ThreadStatic]
private static Random random = new Random();
}
static void Main(string[] args) //测试发牌
{
foreach (Card c in Card.GetCards54())
{
Console.WriteLine(c);
}
}
public void Kverteilt()
{
int j = 0;
Random rnd = new Random();
foreach (player s in PlayerTable)
{
for (int i = 0; i < 6; i++)
{
j = rnd.Next(0,32 - i);
s.KZiehen(shuffledKL.ElementAt(j));//取牌
shuffledKL.RemoveAt(j); //从牌库中删除取出的牌
}
}
}
public void CompSf(Karte obj){
switch(obj)
{
case KartenName.7:....
case KartenName.8:....
case KartenName.9:....
}
}