python随机输出52张牌_一个随机产生52张扑克牌的程序问题

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceCh10CardLib{publicenumRank{Ace=1,Deuce,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Jack,Queen,King,}pub...

using System;

using System.Collections.Generic;

using System.Text;

namespace Ch10CardLib

{ public enum Rank

{

Ace = 1,

Deuce,

Three,

Four,

Five,

Six,

Seven,

Eight,

Nine,

Ten,

Jack,

Queen,

King,

}

public enum Suit

{

Club,

Diamond,

Heart,

Spade,

}

public class Card

{

public readonly Ch10CardLib.Suit suit;

public readonly Ch10CardLib.Rank rank;

public Card(Suit newSuit,Rank newRank)

{

suit = newSuit;

rank = newRank;

}

private Card()

{

}

public override string ToString()

{

return "The" + rank + "of" + suit + "s";

}

}

public class Deck

{

private Ch10CardLib.Card[] cards;//这里面的cards是数组吗?如果是那Ch10CardLib.Card[] 是什么类型的?不是数组又表示什么呢?

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);//"suitVal * 13 + rankVal - 1"这个表达式是什么意思?如果cards[]是数组那么cards[]=new Card( ,)这个呢?

}

}

}

public Ch10CardLib.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];

Random sourceGen = new Random();

for (int i = 0; i < 52; i++)

{

int destCard = 0;

bool foundCard = false;

while (foundCard == false)

{

destCard = sourceGen.Next(52);

if (assigned[destCard] == false)

foundCard = true;

}

assigned[destCard] = true;

newDeck[destCard] = cards[i];

}

newDeck.CopyTo(cards, 0);

}

}

}

这是书上面的一个例题有些部分看不明白,请帮忙看看!谢谢!

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值