📄 deck.cs
字号:
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
namespace LotsOfFun.Games
{
public partial class Deck : Component
{
public Deck(System.ComponentModel.IContainer container)
{
container.Add(this);
InitializeComponent();
MakeDeck();
}
public Deck()
{
InitializeComponent();
MakeDeck();
}
private Suit[] m_suits = { Suit.Clubs, Suit.Diamonds, Suit.Hearts, Suit.Spades };
[Category("Game")]
[Description("The suits in the deck.")]
public Suit[] Suits
{
get { return m_suits; }
set
{
m_suits = value;
this.MakeDeck();
}
}
private FaceValue[] m_faceValues = { FaceValue.Ace, FaceValue.Two, FaceValue.Three, FaceValue.Four, FaceValue.Five, FaceValue.Six, FaceValue.Seven, FaceValue.Eight, FaceValue.Nine, FaceValue.Ten, FaceValue.Jack, FaceValue.Queen, FaceValue.King };
[Category("Game")]
[Description("The face values in the deck.")]
public FaceValue[] FaceValues
{
get { return m_faceValues; }
set
{
m_faceValues = value;
this.MakeDeck();
}
}
System.Collections.ArrayList m_cards = new System.Collections.ArrayList();
private void MakeDeck()
{
for (int count = 0; count < m_cards.Count; count++)
{
((Card)m_cards[count]).Dispose();
}
m_cards.Clear();
for (int asuit = 0; asuit < m_suits.Length; asuit++)
{
for (int avalue = 0; avalue < m_faceValues.Length; avalue++)
{
m_cards.Add(new Card(m_suits[asuit], m_faceValues[avalue]));
}
}
}
public void Shuffle()
{
System.Random rgen = new System.Random();
System.Collections.ArrayList newdeck = new System.Collections.ArrayList();
while (m_cards.Count > 0)
{
int toremove = rgen.Next(0, m_cards.Count - 1);
Card remove = (Card)m_cards[toremove];
m_cards.Remove(remove);
newdeck.Add(remove);
}
m_cards = newdeck;
}
[Category("Game")]
[Description("Number of cards in the deck.")]
public int Count
{
get { return m_cards.Count; }
}
public Card this[int indexer]
{
get
{
if ((indexer >= 0) && (indexer < m_cards.Count))
{
return ((Card)m_cards[indexer]);
}
else
{
throw new ArgumentOutOfRangeException("Index out of range.");
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -