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

📄 hand.cs

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

namespace DeckOfCards
{
	/// <summary>
	/// Summary description for Hand.
	/// </summary>
	public class Hand
	{

		private System.Collections.ArrayList m_cards =
			new System.Collections.ArrayList();
		
		public Hand()
		{
		}
		
		public Hand(Card [] cards)
		{
			m_cards.AddRange(cards);
		}

		public int Count 
		{
			get {return m_cards.Count;}
		}
		
		public Card this [int indexer ] 
		{
			get {return (Card)m_cards [indexer ];}
		}

		public void Add(Card newCard)
		{
			m_cards.Add(newCard);
		}

		public bool Contains(Card cardToFind)
		{
			return m_cards.Contains(cardToFind);
		}

		public bool Contains(Suit suitToFind,FaceValue valueToFind)
		{
			bool found =false;
			Card aCard;
			for (int i =0; i < m_cards.Count; i++)
			{
				aCard =(Card)m_cards [i ];
				if ((aCard.Suit == suitToFind) &&
					(aCard.FaceValue == valueToFind))
				{
					found =true;
				}
			}
			return found;
		}

		public void Remove(Suit suitToFind,FaceValue valueToFind)
		{
			Card aCard;
			for (int i =0;i <m_cards.Count;i++)
			{
				aCard =(Card)m_cards [i ];
				if ((aCard.Suit ==suitToFind)&&
					(aCard.FaceValue ==valueToFind))
				{
					m_cards.Remove(aCard);
					break;
				}
			}
		}
		
		public void Remove(Card cardToRemove)
		{
			if (m_cards.Contains(cardToRemove))
			{
				m_cards.Remove(cardToRemove);
			}
		}

		public void RemovePairs()
		{
			Card findMatch,possibleMatch =null;
			bool found;
			System.Collections.ArrayList noMatches =
				new System.Collections.ArrayList();
			while (m_cards.Count >0)
			{
				findMatch =(Card)m_cards [0 ];
				found =false;
				for (int i =1;i <m_cards.Count;i++)
				{
					possibleMatch =(Card)m_cards [i ];
					if (possibleMatch.FaceValue ==findMatch.FaceValue)
					{
						found =true;
						m_cards.Remove(findMatch);
						m_cards.Remove(possibleMatch);
						break;
					}
				}
				if (!found)
				{
					noMatches.Add(findMatch);
					m_cards.Remove(findMatch);
				}
			}
			m_cards =noMatches;
		}


		public static void Main()
		{
			Card queenOfHearts =new Card(Suit.Hearts,FaceValue.Queen);
			Card twoOfClubs =new Card(Suit.Clubs,FaceValue.Two);
			//Test:Add(Card [])
			Hand aHand = new Hand(new Card [] {queenOfHearts, twoOfClubs });
			//Test:Contains(Card)Expect:True
			Console.WriteLine(
			"Hand contains queenOfHearts:{0}.",
			aHand.Contains(queenOfHearts));
			//Test:Contains(Suit,Value)Expect:True
			Console.WriteLine("Hand contains Queeen of Hearts:{0}.",
			aHand.Contains(Suit.Hearts,FaceValue.Queen));
			//Test:Contains(Card)Expect:False
			Console.WriteLine("Hand contains new queenOfHearts:{0}.",
			aHand.Contains(new Card(Suit.Hearts,FaceValue.Queen)));
			//Test:Remove(Card)Expect:False
			aHand.Remove(queenOfHearts);
			Console.WriteLine("Hand contains Queeen of Hearts:{0}.",
			aHand.Contains(Suit.Hearts,FaceValue.Queen));
			Hand pair = new Hand();
			//Test:Add(Suit,Value)
			pair.Add(new Card(Suit.Diamonds,FaceValue.Ace));
			pair.Add(new Card(Suit.Clubs,FaceValue.Ace));
			//Test:Count Expect:2 cards
			Console.WriteLine("Pair has {0}cards.",pair.Count);
			pair.RemovePairs();
			//Test:Remove Pairs Expect:0 cards
			Console.WriteLine("After RemovePairs,Pair has {0}cards.",
			pair.Count);

		}

	}
}

⌨️ 快捷键说明

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