All pastes #772515 Raw Edit

Something

public text v1 · immutable
·published 2007-11-13 21:27 UTC
rendered paste body
/*	CLASS:		Deck
	PURPOSE:	Emulate a deck of cards.
*/
class Deck
{
	// Class variables
	private var numCards:Number;		// Store total number of cards
	private var shuffledCards:Array;	// Store shuffled cards
	
	// Instantiate class variables
	public function Deck(_numCards:Number)
	{
		numCards = _numCards;
		
		// Organize the deck
		shuffledCards = new Array(numCards);
		for (var i:Number=0; i<numCards; i++)
		{
			shuffledCards[i] = Math.round(Math.random()*10000);
		}
	}
	
	// "Shuffle" cards
	public function shuffle():Void
	{
		var tempShuffledCards:Array = new Array(numCards);
		
		// Find the largest random number
		var tempLargeNumber:Number = 0;
		var tempLargeNumberIndex:Number = 0;
		for (var i:Number=0; i<numCards; i++)
		{
			tempLargeNumber = 0;
			
			for (var n:Number=0; n<numCards; n++)
			{
				if (tempLargeNumber < shuffledCards[n])
				{
					tempLargeNumber = shuffledCards[n];
					tempLargeNumberIndex = n;
 				}
			}
			shuffledCards[tempLargeNumberIndex] = 0;
			tempShuffledCards[i] = tempLargeNumberIndex;
		}
		shuffledCards = tempShuffledCards;
		
		// Tack a 1 onto each array member to get rid of the chance of showing a cards back
		for (i=0; i<numCards; i++)
		{
			shuffledCards[i] = shuffledCards[i]+2;
		}
	}
	
	// Recieve an index and return a card at that given index, does not remove from array
	public function getCardByIndex(_index:Number):Number
	{
		return shuffledCards[_index];
	}
	
	// Return the last array index and remove it
	public function getCard():Number
	{
		return Number(shuffledCards.pop());
	}
	
	// Recieve a hand size and return an array containing cards from the shuffled array
	public function getHand(_handSize:Number):Array
	{
		var hand:Array = new Array(_handSize);
		for (var i:Number=0; i<_handSize; i++)
		{
			hand[i] = shuffledCards.pop();
		}
		
		return hand;
	}
	
	// Find out who's dealer
	public function getDealer(_numPlayers:Number):Number
	{
		return Math.round(Math.random()*_numPlayers);
	}
	
	// Return a "cut - card"
	public function getCutCard():Number
	{
		return Number(shuffledCards.pop());
	}
}