你可以试试这个,作为一个设置:
定义所有卡片类型:
var carTypes = new List<string>()
{
"Spades", "Diamonds", "Heads", "Clubs"
}
现在将卡片名称及其值定义为enum
enum cards
{
Ace = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6,
Seven = 7, Either = 8, Nine = 9, Ten = 10, Jack = 11, Queen = 12, King = 13
}
定义卡片结构:
class Card
{
public string Name { get; set; }
public string Type {get; set;
public int value{ get; set; }
}
从这里开始。您需要做的就是声明一个牌组并将所有牌放在那里...
让我们定义一个 Deck...
List<Card> deck = new List<Card>();
让我们按顺序将牌填满我们的牌库...稍后我们会洗牌。
var cardsValues = Enum.GetValues(typeof(cards));
for(int c = 0; c < cardValues.Count(); c++)
{
// create each card of 4 different types
foreach(var cardType in cardTypes)
{
deck.add(new Card{
Name = Enum.GetName(typeof(cards), c),
Type = cardType,
Value = cardsValues[c]
});
}
}
我会把它留在这里,这是接下来的步骤:
此时,我们的堆栈已满是卡片,但它们都按其值排列。下面的步骤是要遵循的
- 使用
Random()生成器将牌组中的牌洗牌,使用[0, deck.Count()]作为您的随机生成范围...还要确保生成的每个数字不重复...所以生成随机数字deck.Count()次。
- 板条箱玩家类
class Player{
public string Name { get; set; }
public bool is activePlayer { get; set; }
public List<Card> StartCards { get; set;} // Stores Initial Cards.
public List<Card> CardsPlayed { get; set; };
public List<Card> CardsWon { get; set; };
//... add methods that manipulate these arrays as the player plays
}