⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deck.cs

📁 OOP With Microsoft VB.NET And Csharp Step By Step
💻 CS
字号:
using System;

namespace DeckOfCards
{
	/// <summary>
	/// Summary description for Deck.
	/// </summary>
	public class Deck
	{
		private System.Collections.ArrayList m_cards =
			new System.Collections.ArrayList();
		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.");
				}
			}
		}

		private void MakeDeck(Suit[] suits, FaceValue[] values) {
			for (int aSuit =0;aSuit <suits.Length;aSuit++) {
				for (int aValue =0;aValue <values.Length;aValue++) {
					m_cards.Add(new Card(suits[aSuit], values[aValue]));
				}
			}
		}

		public Deck()
		{
			Suit [] suits =	{Suit.Clubs,Suit.Diamonds,Suit.Hearts,
				Suit.Spades };

			FaceValue [] values = {	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};
			this.MakeDeck(suits,values);
		}

		public Deck(Suit[] suits, FaceValue[] values)
		{
			this.MakeDeck(suits,values);
		}

		public void Shuffle()
		{
			System.Random rGen = new System.Random();
			System.Collections.ArrayList newDeck =
				new System.Collections.ArrayList();
			while (m_cards.Count >0)
			{
				//Choose one card at random to remove.
				int toRemove = rGen.Next(0,m_cards.Count -1);
				Card remove = (Card)m_cards [toRemove ];
				m_cards.Remove(remove);
				//Add the removed card to the new deck.
				newDeck.Add(remove);
			}
			//Replace old deck with new deck.
			m_cards = newDeck;
		}

		public void Deal(Hand [] hands)		{
			int handIndex =0;
			while (m_cards.Count >0) {
				hands [handIndex ].Add((Card)m_cards [0 ]);
				m_cards.RemoveAt(0);
				handIndex =(handIndex ==hands.Length -1) ? 0 : handIndex+1;
			}
		}

		public Card Draw()
		{
			Card topCard =null;
			if (m_cards.Count >0)
			{
				topCard =(Card)m_cards [0 ];
				m_cards.RemoveAt(0);
			}
			return topCard;
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -